QT Embedded-----QApplication

本文详细介绍了QApplication的作用及其实现过程,包括初始化步骤、管理内容如窗口对象、消息循环等,并探讨了其与QWSServer的交互方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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, QWSDisplay,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)其它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值