(转)Qt中⽂⼿册之QApplication
QApplication管理GUI程序的控制流和主要设置。
QApplication包含由窗⼝系统和其他来源处理过和发送过的主事件循环。它也处理应⽤程序的初始化和收尾⼯作,并提供对话管理。QApplication可以对系统和应⽤的⼤部分设置项进⾏设置。
对于⽤Qt写的任何⼀个GUI应⽤,不管这个应⽤有没有窗⼝或多少个窗⼝,有且只有⼀个QApplication对象。
⽽对于⽤Qt写的⾮GUI应⽤,则有且只有⼀个QCoreApplication对象,并且这个应⽤不依赖QtGui库。
这个QApplication对象的指针可以通过instance()函数获取,它和⼀个全局指针--qApp等价。
QApplication的主要功能是:
1、使⽤所在桌⾯的参数例如调⾊板(palette())、字体(font())、双击间隔(doubleClickInterval())等信息初始化应⽤程序。当我们改变桌⾯的⼀些设置时,可以让应⽤程序的这些设置保持⼀致。
2、QApplication从底层窗⼝系统接收事件,并通过sendEvent()或postEvent()发送给需要的窗⼝。
3、通过解析命令⾏参数,来设置程序内部状态。
4、在运⾏时,可以通过setStyle()函数来改变QApplication包含的⼀个QStyle对象,从⽽改变应⽤程序的外观。
5、制定程序的颜⾊策略,详见setColorSpec()函数说明。
6、通过translate()函数可以设置本地化的字符串。
7、QApplication还包含⼀些⾮常⽅便的类,例如屏幕信息类(desktop())和剪切板类(clipboard())。
8、QApplication包含所有窗⼝的信息,可以知道程序在屏幕上的位置(widgetAt()),顶层窗⼝列表(topLevelWidgets()),关闭所有窗⼝(closeAllWindows())等等。
9、QApplication能够管理⿏标光标样式。参照setOverrideCursor();
10、在Linux系统的中,它提供刷新和同步通讯流的函数,参看flushX()和syncX()。
11、QApplication提供全⾯的与⽤户交互界⾯。当⽤户注销时,可以正常关闭;如果不能终⽌程序,它能取消关机进程;甚⾄可以保存程序全部状态。参看 (),() and () and ()
既然QApplication做了这么多初始化⼯作,因此它必须在创建其他与⽤户界⾯相关的类之前创建。QApplication能够处理命令⾏参数,所以在想要处理命令⾏参数之前就要创建它。
头⽂件:#include<QApplication>
继承⾃:QCoreApplication
⼀、公共函数
1、QApplication::QApplication(int & argc,char ** argv)
1.1、使⽤在argv中包含的argc个命令⾏参数,初始化窗⼝系统及应⽤对象。
1.2、有⼀个全局的指针app指向应⽤对象(QApplication)。并且只能创建⼀个QApplication对象。
1.3、QApplication对象必须在绘制设备(设备包括窗⼝、像素映射、位图等)之前创建。
1.4、Qt只将能够识别的命令⾏参数,赋值给argv及argc。可识别的命令⾏参数如下:
1.5、Qt 命令⾏调试参数(如果Qt编译时没有加QT_DEBUG标记,则认为调试参数是⽆效的)
-nograb:告诉Qt⼀定不会获取⿏标和键盘事件;
-dograb:忽略-nograb选项功能,不管-nograb选项是否存在命令⾏参数中;
-sync:只有在X11系统下有效,调试时和调试服务器保持同步;
1.6、所有的Qt程序都⽀持如下的命令⾏参数:
-style=风格:设置程序GUI风格。该值可以是关于主题、窗⼝等。如果你想在编译Qt时使⽤风格或者额外的关于风格插件,这个参数可以帮你实现。
-style 样式:同上;
-stylesheet = 样式表:设置程序样式表。这个参数必须是⼀个包含样式表的⽂件;
注意:该⽂件中样式表的相对路径是相对该⽂件的。
-stylesheet 样式表:同上;
-session= 会话:从最近的会话中恢复程序。
-session 会话:同上;
-widgetcount:在程序崩溃时,打印崩溃前的⼏个窗⼝信息和最后同时存在的窗⼝数量。
-reverse:设置程序⾃动布局⽅向从右到左,对⽂字的处理⽅向从右到左;
-graphicssystem:设置场景窗⼝和QPixmaps可⽤的后台⽀持,有效的参数是raster和opengl
-gmljsdebugger=,通过设置特殊的端⼝号,激活QML/JS调试器,端⼝号格式为:1234[,块],块是可选的参数。同时使程序等待⼀个调试器来连接。
1.7、⽤于X11版本Qt的参数
-display 显⽰:设置X显⽰,默认值是$DISPLAY
-geometry 位置⼤⼩:设置第⼀个窗⼝显⽰的位置。
-fn 或者-font 字体:设置程序字体。该参数必须是系统能够识别的。如果Qt程序配置了字体,该参数会被忽略;
-bg或者-background 颜⾊:设置程序默认的背景⾊;
-fg或者-foreground 颜⾊:设置程序默认的前景⾊;
-btn或者-button 颜⾊:设置默认的按钮颜⾊;
-name 名字:设置程序的名字;
-title标题:设置程序的标题;
-visual TrueColor:在8位显⽰屏上强制使⽤真彩⾊;
-ncols 数字:在8位显⽰屏上,如果使⽤QApplication::ManyColor,则限制颜⾊的数量。如果参数为216,则使⽤6X6X6颜⾊体,其他值按2X3X1的⽐例使⽤;
-cmap:让程序在8位显⽰屏上安装定制⾊图;
-im:设置于服务器相关的输⼊⽅法(相当于设置X调试器XMODIFIERS的环境变量)
-inputstyle:
2、QApplication::QApplication(int & argc,char ** argv, bool GUIenabled)
如果GUIenabled为true,将创建⼀个GUI程序,否则创建⼀个控制台程序(没有⽤户界⾯的程序);
在X11系统上,如果为false,程序将不会连接X服务器;
3、QApplication::QApplication(int & argc,char ** argv, type)
enum QApplication::Type
Constant Value Description
QApplication::Tty0  a console application控制台程序
QApplication::GuiClient1  a GUI client application GUI客户端程序
QApplication::GuiServer2a GUI server application (for Qt for Embedded Linux) GUI服务器程序(⽤在嵌⼊式linux Qt)和-qws作⽤相同
4、QApplication::QApplication(Display * display,Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0)
创建⼀个能够在⼀个已经开始⼯作的显⽰器上显⽰的程序,只在X11系统上有效,并且真彩⾊位深⼤于8⽐特每像素。5、QApplication::QApplication(Display * display,int & argc, char ** argv,Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0)同上;
6、QApplication::QApplication(QApplication::QS60MainApplicationFactory factory,int & argc, char ** argv)
⽤于塞班系统
7、QApplication::~QApplication()
清理程序所有窗⼝分配的资源;设置全局指针qApp为0;
8、void QApplication::aboutQt()[static slot]  静态槽函数
显⽰⼀个关于Qt版本等信息的消息对话框。
9、void QApplication::aboutToReleaseGpuResources() [signal]信号
只⽤在塞班系统中,当程序释放GPU资源时,触发该信号。
10、void QApplication::aboutToUseGpuResources()  [signal]信号
只⽤在塞班系统中,当程序使⽤GPU资源时,触发该信号。
11、QWidget * QApplication::activePopupWidget()    [static]静态函数
返回⼀个弹出窗⼝;弹出窗⼝是⼀个特殊的顶层窗⼝的(将窗⼝标志设置为Qt::WType_Popup)。当程序打开⼀个弹出窗⼝时,所有的事件都将发送给弹出窗⼝,其他窗⼝不能操作。
如果已经有弹出窗⼝,再次弹出窗⼝时,这个窗⼝将被放⼊⼀个栈中,并返回栈顶的窗⼝。
12、QWidget * QApplication::activeModalWidget()  [static]静态函数
返回⼀个活动的模态窗⼝;模态窗⼝是⼀个特殊的顶层窗⼝,事件循环在模态窗⼝中,模态模式下不能操作其他窗⼝部件。
所有的模态窗⼝被放⼊⼀个栈中,这个函数返回栈定的窗⼝。
13、QWidget * QApplication::activeWindow() [static]静态函数
返回⼀个有焦点的窗⼝顶层窗⼝,如果返回0,则代表应⽤程序没有焦点。
14、void QApplication::alert(QWidget * widget,int msec = 0)
向窗⼝发出警告,就像windows下任务栏中上的图标闪现状态。
15、QWidgetList QApplication::allWidgets()[static]静态函数
返回应⽤程序的所有窗⼝列表。
session和application的区别16、void QApplication::beep()    [static]静态函数
使⽤默认的⾳量和铃声,发出铃声。
17、void QApplication::changeOverrideCursor(constQCursor & cursor)  [static]静态函数
改变光标;使⽤该函数前必须先设置光标(setOverrideCursor)。
18、QClipboard * QApplication::clipboard()    [static]静态函数
返回⼀个只向全局粘贴板的指针。
19、void QApplication::closeAllWindows()  [static slot]静态槽函数
关闭所有顶层窗⼝;例如,⽂件菜单中的关闭按钮就与该槽链接。窗⼝的关闭顺序是随机的。默认情况下程序会在所有窗⼝关闭后退出,除⾮设置quitOnLastWindowClosed为false;
20、int QApplication::colorSpec()    [static]静态函数
返回最多可⽤的颜⾊总数。参见QApplication::setColorSpec().
21、void QApplication::commitData(QSessionManager & manager)    [virtual]虚函数
相关的QSessionManager希望应⽤保存所有数据。也就是,保存所有打开着的并且具有操作权限的⽂件。
22、 void QApplication::commitDataRequest(QSessionManager & manager)  [signal]信号
当QSessionManager向让程序保存数据时,发射该信号,当连接该信号时,应该使⽤ Qt::DirectConnection做为connect的第五个参数
23、QDesktopWidget * QApplication::desktop()[static]静态函数
返回桌⾯信息QDesktopWidget。
24、bool QApplication::desktopSettingsAware()[static]静态函数
如果Qt使⽤系统标准颜⾊、字体则返回真,否则返回假
25、bool QApplication::event(QEvent * e)  [virtual protected]虚受保护函数
QObject::event()的重新实现
26、int QApplication::exec()
进⼊主循环,知道exit()被调⽤。
27、void QApplication::focusChanged(QWidget * old,QWidget * now)  [signal]信号
焦点改变时,该信号出发。
28、QWidget * QApplication::focusWidget()  [static]静态函数
返回获得焦点的窗⼝。
29、QFont QApplication::font()[static]静态函数
返回程序默认的字体
30、void QApplication::fontDatabaseChanged() [signal]信号
当程序加载或删除字体时,发送该信号
31、QFontMetrics QApplication::fontMetrics()[static]静态函数
返回应⽤程序字体规格(长宽间距等参数)。
32、QInputContext * QApplication::inputContext() const          [static]静态函数
返回应⽤程序的输⼊法(软件盘)QInputContext:通过模拟发送按键事件,实现与键盘输⼊相同的效果。33、bool QApplication::isEffectEnabled(Qt::UIEffect effect)  [static]静态函数
如果使⽤系统的设置(颜⾊字体等)则返回真,否则返回假。Qt::UIEffect :⼀个枚举,描述可⽤的UI效果。
34、bool QApplication::isLeftToRight()[static]静态函数
是否从左到右布局。
35、bool QApplication::isRightToLeft()[static]静态函数
是否从右到左布局。
36、bool QApplication::isSessionRestored() const
应⽤程序是否从最近⼀个会话中恢复。
37、Qt::KeyboardModifiers QApplication::keyboardModifiers()
返回当前修饰键的状态。
38、void QApplication::lastWindowClosed()[signal]信号
当最后⼀个窗⼝关闭时,发送该信号。
39、Qt::MouseButtons QApplication::mouseButtons()
返回当前⿏标按键
41、QCursor * QApplication::overrideCursor()[static]静态函数
返回光标
42、QPalette QApplication::palette()[static]静态函数
返回调⾊板
43、QPalette QApplication::palette(constQWidget * widget)[static]静态函数
返回窗⼝部件widget的调⾊板
44、Qt::KeyboardModifiers QApplication::queryKeyboardModifiers()
返回当前修饰键的状态。注意这是按键的实际状态,与keyboardModifiers不同
45、void QApplication::restoreOverrideCursor()
撤销上⼀次setOverrideCursor()操作
46、void QApplication::setActiveWindow(QWidget * active)
设置指定的窗⼝active为活动窗⼝,当不能使该窗⼝获得键盘焦点,若想获取键盘焦点可以使⽤QWidget::activateWindow()函数47、void QApplication::setColorSpec(int spec)
设置颜⾊规格。
48、void QApplication::setDesktopSettingsAware(bool on)
是否使⽤系统标准设置参数,颜⾊字体等
49、void QApplication::setFont(constQFont & font, const char * className = 0)
设置字体,如果className给出,将设置指定类className的字体
50、void QApplication::setGraphicsSystem(constQString & system)
设置⽤于⽀持窗⼝部件和QPixmaps等图像的后端处理,有效的参数:native(本地)、raster(栅格)、opengl(OpenGL)以下⽅法设置图像后端,优先级从⾼到低:
命令⾏:graphicssystem
函数:QApplication::setGraphicsSystem
环境变量:QT_GRAPHICSSYSTEM
编译配置configure:graphicssystem
51、void QApplication::setInputContext(QInputContext * inputContext)
设置QInputContext
52、void QApplication::setOverrideCursor(constQCursor & cursor)
设置光标
53、void QApplication::setPalette(constQPalette & palette, const char * className = 0)
设置调⾊板
54、void QApplication::setStyle(QStyle * style)
设置程序风格
55、void QApplication::syncX()
在X11桌⾯系统中,同步X服务器
56、QWidget * QApplication::topLevelAt(constQPoint & point)
返回指定位置的顶层窗⼝
57、QWidget * QApplication::topLevelAt(int x,int y)
返回指定位置的顶层窗⼝
58、QWidgetList QApplication::topLevelWidgets()
返回窗⼝列表
59、Type QApplication::type()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。