欢迎来到天天文库
浏览记录
ID:38359648
大小:29.67 KB
页数:4页
时间:2019-06-11
《QT_QApplication类简介》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、QtQApplication类简介一、详细描述QApplication类管理图形用户界面应用程序的控制流和主要设置。可以说QApplication 是Qt的整个后台管理的命脉它包含主事件循环,在其中来自窗口系统和其它资源的所有事件被处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。它也处理绝大多数系统范围和应用程序范围的设置。对于任何一个使用Qt的图形用户界面应用程序,都存在一个QApplication对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。QApplication对象是可以通
2、过全局变量qApp访问。它的负责的主要范围有:*它使用用户的桌面设置,例如palette()、font()和doubleClickInterval()来初始化应用程序。如果用户改变全局桌面,例如通过一些控制面板,它会对这些属性保持跟踪。*它执行事件处理,也就是说它从低下的窗口系统接收事件并且把它们分派给相关的窗口部件。通过使用sendEvent()和postEvent(),你可以发送你自己的事件到窗口部件。*它分析命令行参数并且根据它们设置内部状态。关于这点的详细情况请参考下面的构造函数文档。*它定义了由QStyle
3、对象封装的应用程序的观感。在运行状态下,可以通过setStyle()来改变。*它指定了应用程序如何分配颜色。详细情况请参考setColorSpec()。*它定义了默认文本编码(请参考setDefaultCodec())并且提供了通过translate()用户可见的本地化字符串。*它提供了一些像desktop()和clipboard()这样的魔术般的对象。*它知道应用程序的窗口。你可以使用widgetAt()来询问在一个确定点上存在哪个窗口部件,得到一个topLevelWidgets()(顶级窗口部件)的列表和通过cl
4、oseAllWindows()来关闭所有窗口,等等。*它管理应用程序的鼠标光标处理,请参考setOverrideCursor()和setGlobalMouseTracking()。*在X窗口系统上,它提供刷新和同步通讯流的函数,请参考flushX()和syncX()。*它提供复杂的对话管理支持。这使得当用户注销时,它可以让应用程序很好地结束,如果无法终止,撤消关闭进程并且甚至为未来的对话保留整个应用程序的状态。详细情况请参考isSessionRestored()、sessionId()、commitData()和sa
5、veState()。应用程序排演实例包含了一个QApplication通常用法的典型完整的main()。因为QApplication对象做了如此多的初始化,它必须在所有与用户界面相关的其它类被创建之前被创建。因为它也处理命令行参数,在应用程序中对argv解释和修改之前创建它通常是一个好主意。(注意,也对于X11,setMainWidget()可以根据-geometry选项来改变主窗口部件。为了保持这个功能,你必须在setMainWidget()和它的任何重载之前设置你的默认。)二、QApplication两类构造的讲
6、解QApplication::QApplication(int& argc,char** argv )初始化窗口系统并且使用在argv中的argc个命令行参数构造一个应用程序对象。全局指针qApp指向这个应用程序对象。应该只有一个应用程序对象被创建。这个应用程序对象必须在任何绘制设备(包括窗口部件、像素映射、位图等等)之前被构造。注意argc和argv也可以被改变。Qt会移除它能够识别的命令行参数。原来的argc和argv稍后可以通过qApp->argc()和qApp->argv()来访问。argv()的文档中包含如
7、何处理命令行参数的详细描述。Qt调试选项(如果Qt被使用被定义的QT_NO_DEBUG标记进行编译,这些选项就是不可用的):*-nograb,告诉Qt永远不要捕获鼠标或者键盘。*-dograb(只有在X11下),在调试器下运行可能导致和-nograb冲突,使用-dograb来覆盖。*-sync(只有在X11下),为了调试切换为同步模式。更详细的解释请参考调试技术。所有的Qt程序自动支持下面这些命令行选项:*-style=style,设置应用程序图形用户界面风格。可能的值有motif、windows和platinum。
8、如果你使用其它风格编译Qt或者有作为插件编译了其它风格,那么它们都可以被用作-style命令行选项。*-stylestyle,这个和上面的一样。*-session=session,从以前的对话中重新载入应用程序。*-sessionsession,这个和上面的一样。X11版本的Qt也支持传统的X11命令行选项:*-displaydisplay,设
此文档下载收益归作者所有