QNX下Photon编程(一)Photon编程概述

这是一个系列讲座,主要讲述QNX下的GUI编程-Photon编程,主要针对初学者。

 

Photon Manager作为一个服务进程运行,并且创建一个三维的事件空间(包含二维空间的region和第三维--事件管理)。Photon Manager本身不会绘制任何东西,也不会管理鼠标、键盘等输入设备。Photon Manager只是一个中间件,一方面他提供给上层应用一系列标准编程接口,另一方面驱动程序和窗口管理器通过与他通信获得应用程序指令。

 

Photon microGUI包含了一个可视化开发工具Photon Application Builder,也就是我们常说的PhAB。他可以辅助设计界面,并生成相应的C/C++代码,通过使用PhAB我们可以快速的开发产品原型、并将每一个widget的事件处理回调属性化。

 

Widget集合建立在X Toolkit(Xt)库之上,这是一个面向对象的轻量级框架,如果你熟悉Xt,那么你学习Photon编程会很容易。

 

每一个Widget封装了如下内容:

  1. 怎样绘制自己;
  2. 如何相应用户事件;
  3. 当他销毁时如何重画;

一个Widget创建后我们可以使用PtSetResource对他的资源(或者说是属性)进行设置,事件回调也可以通过这种方法设置。

 

一个Widget的生命周期包括如下阶段:

  1. 创建,Create or Instantiated,这时对象已经存在,可以设置属性;
  2. 真实化,realized,这时对象将可见,可以通过PtRealizeWidget()来真实化对象;
  3. 虚化对象,unrealized,这时对象不可见,可以通过调用PtUnrealizeWidget()来虚化对象;
  4. 销毁,当对象不需要存在时,可以手动销毁对象,可以通过PtDestroyWidget()销毁对象。

我们可以使用PhAB来建立Photon工程,也可以手工建立文本类型工程之后加入对象的创建、真实化、虚化、销毁的代码,通过调用PtMainLoop()处理消息队列中的消息来完成业务逻辑。

 

 

Photon API函数命名约定:

  1. Al前缀:国际化处理,需包含phexlib库;
  2. Ap前缀:PhAB处理模块、widget数据库等的函数,需包含Ap库;
  3. Pd前缀:绘制上下文函数;
  4. Pf前缀:文字操作;
  5. Pg前缀:底层图形函数;
  6. Ph前缀:Photon microKernel绘制请求函数;
  7. P1前缀:图形图像函数;
  8. Pm前缀:内存上下文函数;
  9. Pp前缀:打印函数;
  10. Pt前缀:创建、真实化、销毁Widget函数;
  11. Px前缀:加载图像、处理配置文件等扩展函数集;
  12. Pt前缀:实时时钟函数;
  13. utf8:UTF-8编码字符串函数;
  14. wc:宽字符字符串处理函数;

 

创建Photon工程步骤:

  1. 创建module:包括窗口、对话框、菜单、图片等资源;
  2. 添加widget;
  3. 添加事件回调处理函数;
  4. 生成代码;
  5. 运行应用程序;

 

 

 

 

 

你可能感兴趣的:(QNX)