打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
QT Embedded二三事之QApplication
      QApplication代表着QT Embedded应用程序的运行时对象,类似于MFC的CWinApp。应用程序可以通过一个全局指针变量qApp表访问当前应用程序的QApplication。

      1.QApplication的初始化
      对于QT应用程序来说,每一个进程都必需首先初始化一个QApplication的全局对象qApp。一般来说,都是在main函数开始的时候,声明一个QApplication的局部变量。同时,QApplication也初始化了一些全局变量:QWSServer,QWSDiplay,QScreen.
     QApplication的初始化过程,主要是由QApplication::construct来实现的,

    void QApplication::construct( int &argc, char **argv, Type type )
    {
        qt_appType = type;
        qt_is_gui_used = (type != Tty);
        //分析程序启动时的传入参数
        init_precmdline();
        static const char *empty = "";
        if ( argc == 0 || argv == 0 ) {
        argc = 0;
        argv = (char **)∅ // ouch! careful with QApplication::argv()!
        }
        app_argc = argc;
        app_argv = argv;

       //QT全局对象的初始化,QWSServer, QWSDiplay,QScreen
       qt_init( &argc, argv, type );   // Must be called before    initialize()
      //分析程序启动时的传入参数
      process_cmdline( &argc, argv );
      //初始化QApplication本身的一些参数
      initialize( argc, argv );

     ...........
    }


     2.QApplication所管理的内容
     (1)通过QWSDisplay与QWSServer进行通讯
 发送QWSCommand到QWSServer,同时接受QWSServer发回来的QWSEvent.这是与QWSServer以及与其它QT client的基础,也是QWSSServer管理QT Client的基础。
     QWSCommand包括:创建toplevel widget,更改toplevel widget的属性(focus,altitude,region),QCopChannel事件等。
     QWSEvent包括toplevel窗口的管理,键盘事件,鼠标事件,QCopChannel事件等.
     QWSCommand是一种request,不是command,client应该向server request资源,不是下达command.同样部分QWSEvent属于server的response,当然有一些确实是由某一QT client的request,影响到其它的QT Client, server是要发出QWSEvent通知受影响的QT Client.

     (2)窗口对象
     all widget, all toplevel widget,all popup widget, all model widget
     focus widget, active widget, active popup widget, active model widget.

     (3)消息循环
     exec()会启动消息循环,消息循环的主要功能是有QEventLoop来实现。

     (4)graphic对象
     cursor,palette,font,screen,style

     (5)其它

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Qtcreator教程二(编写多窗口程序)
QT Creator 快速入门教程 读书笔记(二)
QT3与QT4移植中的问题引子
利用#pragma execution
通过鼠标事件来看QT/Embedded 窗体事件是如何派发的
Qt中如何退出程序代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服