Photon microGui是qnx原生的UI图形工具。Qnx下开发Photon 一般是使用phAB来创建,使用默认的Momentics IDE也可以创建Photon图形程序。

首先需要创建一个c/c++工程,然后添加Photon的库,如图:

添加了库之后,就可以写photon的helloworld程序了。

 #include <Ph.h>
#include <Pt.h> int onBtnClick( PtWidget_t *widget, void *data, PtCallbackInfo_t *cbinfo)
{
std::cout << "onBtnClick!" << std::endl;
} int main(int argc, char *argv[]) {
std::cout << "Welcome to the QNX MNH Test!" << std::endl; Pt_widget *window;
PtArg_t args[];
int i = ;
Ph_dim winSize;
winSize.h = ;
winSize.w = ; PtSetArg( &args[i++], Pt_ARG_WINDOW_TITLE, "Hello", );
PtSetArg( &args[i++], Pt_ARG_DIM, &winSize, );
//PtSetArg( &args[i++], Ph_WM_RENDER_BORDER, false, 0); if( NULL == ( window = PtAppInit( NULL, &argc, argv, i, args ) ) )
{
perror( "PtAppInit()" );
return ;
}
window->border_width = ; i = ;
PtArg_t argDrawWidget[];
PtSetArg( &args[i++], Pt_ARG_DIM, &winSize, );
Pt_widget *pDraw = PtCreateWidget(PtRaw, window, i, argDrawWidget); PtAddCallback( pDraw, Pt_CB_ACTIVATE, onBtnClick, NULL );
PtRealizeWidget(pDraw); PtRealizeWidget(window);
PtMainLoop();
return EXIT_SUCCESS;
}
首先要初始化PtAppInit,中间是使用PtCreateWidget创建控件以及PtAddCallback添加事件监听,并调用PtRealizeWidget使能并显示所有控件,最后调用PtMainLoop进入消息循环。
这样一个简单的Photon图形程序就完成了,编译完成后就可以拿去跑了。 Photon microGui虽然小,但是控件还是很完整的,

另外,photon还支持自定义控件。用它基本可以满足qnx下开发图形程序的需求。

最新文章

  1. C# 如何生成一个时间戳
  2. github基本操作
  3. 【SPOJ 8222】Substrings
  4. servlet、genericservlet、httpservlet之间的区别(转)
  5. QML学习笔记之二
  6. ThinkPHP 3 的CURD管理用户信息 修改和删除
  7. 个推推送 产品SDK常见问题检查
  8. api接口写好了?想过(Accept,Content-Type)?返回类型json|xml?
  9. wpf改变网格字体颜色
  10. html/css 表格元素以及表格布局
  11. [C++]油田(Oil Deposits)-用DFS求连通块
  12. maven plugins
  13. 死磕!Windows下Apache+PHP+phpmyadmin的配置
  14. 关于css浮动的一点思考
  15. 百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
  16. 在windows下实时监控、接受文件变化小工具
  17. 树莓派项目——基于树莓派的WIFI网络互传系统设计
  18. Druid 配置_配置WebStatFilter
  19. pytest文档1-环境准备与入门
  20. PostgreSQL 系统参数调整及并行设置(转)

热门文章

  1. spark 简介
  2. Java 动态代理作用是什么?
  3. WebForm——IIS服务器、开发方式和简单基础
  4. JSP以及JSP解析原理
  5. 关于git自己所学到的东西
  6. Mac下好用的编辑器VIM GUI版本 VimR 推荐
  7. 最好的cpm广告联盟哪里有
  8. LAMP环境搭建
  9. Jquery EeasyUI等框架中图标的处理方法
  10. VS2017 RC IIS Express 无法启动 环境不正确