Momentics创建Photon图形程序

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

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

Momentics创建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虽然小,但是控件还是很完整的,

Momentics创建Photon图形程序

另外,photon还支持自定义控件。用它基本可以满足qnx下开发图形程序的需求。
上一篇:Max Sum of Max-K-sub-sequence(单调队列)


下一篇:SpringBoot与PageHelper的整合示例详解