(转)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提供全面的与用户交互界面。当用户注销时,可以正常关闭;如果不能终止程序,它能取消关机进程;甚至可以保存程序全部状态。参看 isSessionRestored(),sessionId() and commitData() and saveState()
既然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 type)
enum QApplication::Type
Constant | Value | Description |
---|---|---|
QApplication::Tty |
0 |
a console application控制台程序 |
QApplication::GuiClient |
1 |
a GUI client application GUI客户端程序 |
QApplication::GuiServer |
2 |
a 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]静态函数
返回应用程序的所有窗口列表。
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()
返回程序类型:
QApplication::Tty |
0 |
a console application控制台程序 |
QApplication::GuiClient |
1 |
a GUI client application |
QApplication::GuiServer |
2 |
a GUI server application (for Qt for Embedded Linux) |
60、QWidget * QApplication::widgetAt(constQPoint & point)
返回指定位置的窗口部件
61、QWidget * QApplication::widgetAt(int x,int y)
返回指定位置的窗口部件
--------------------- 本文来自 郭老二 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010168781/article/details/51484455?utm_source=copy
(转)Qt中文手册 之 QApplication的更多相关文章
- Qt中文乱码问题(比较清楚,同一个二进制串被解释成不同的语言)
文章来源:http://blog.csdn.net/brave_heart_lxl/article/details/7186631 以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先 ...
- 开篇-QT完全手册
嵌入式工具Qt的安装与使用 摘要 Qt是Trolltech公司的一个产品.Trolltech是挪威的一家软件公司,主要开 发两种产品:一种是跨平台应用程序界面框架:另外一种就是提供给做嵌入式Linux ...
- NVelocity介绍,NVelocity中文手册文档及实例下载
NVelocity是什么velocity英音:[vi'lɔsiti]美音:[və'lɑsətɪ]近在做一个项目,客户要求有网站模板功能,能够自主编辑网站的风格,因为这个系统是为政府部门做子站系统,举个 ...
- (转)Sqoop中文手册
Sqoop中文手册 1. 概述 本文档主要对SQOOP的使用进行了说明,参考内容主要来自于Cloudera SQOOP的官方文档.为了用中文更清楚明白地描述各参数的使用含义,本文档几乎所有参数 ...
- Qt中文乱码解决思路
最近项目中遇到不少的Qt中文乱码的问题,主要原因是客户的需求比较多,Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求.经常出现个问题是windows的解决了,源代码 ...
- man中文手册配置
1.ubuntu环境man中文手册配置 1) 终端输入sudo apt-get install manpages-zh 2) 安装后修改配置文件sudo gedit /etc/manpath.co ...
- GB2312、GBK和UTF-8三种编码以及QT中文显示乱码问题
1.GB2312.GBK和UTF-8三种编码的简要说明 GB2312.GBK和UTF-8都是一种字符编码,除此之外,还有好多字符编码.只是对于我们中国人的应用来说,用这三种编码 比较多.简单的说一下, ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数·简明中文手册 总览
<zw版·Halcon-delphi系列原创教程> Halcon分类函数·简明中文手册 总览 Halcon函数库非常庞大,光HALCONXLib_TLB.pas文件,源码就要7w多行,但核 ...
- phpredis中文手册——《redis中文手册》 php版
本文是参考<redis中文手册>,将示例代码用php来实现,注意php-redis与redis_cli的区别(主要是返回值类型和参数用法). 目录(使用CTRL+F快速查找命令): Key ...
随机推荐
- centos7 安装docker(手动和脚本安装)换源 卸载
centos7 安装docker(手动和脚本安装)换源 卸载 Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker ...
- 集成Spring-Boot与gRPC,grpc-spring-boot-starter
项目地址:grpc-spring-boot-starter grpc是一个出身名门的RPC框架,性能高,灵活度高,支持多语言. 支持多语言,如果你的项目在使用多种语言做开发,非常推荐使用. 作为Jav ...
- Mysql系列(九)—— 性能分析explain执行计划
explain是mysql中sql优化的一个重要手段.顾名思义,explain就是解释sql,用于表示sql是怎样执行的信息,即sql执行计划! 语法 explain statement statem ...
- sprintboot动态静态资源转发
背景| 要做一个功能,根据规则服务器上创建文件后,返回可下载的链接 因为sprintboot中地址需要先在用@RequestMapping定义好,否则解析不了,这时动态生成 ...
- handle句柄
若是你向我问起 Win32 程序设计中印象最深(最坑爹)的一个概念是什么,那么我会毫不犹豫地告诉你——句柄(Handles).究其原因,无论是 MSDN 还是 维基百科,对于“句柄”这个词的解说都显得 ...
- django 开发Broken pipe from ('127.0.0.1', 58078)问题解决
最近写的一个项目,前端使用了表单submit提交,后端接收POST数据存储.实际上的逻辑并不复杂, django接收到的时候会产生Broken pipe from ('127.0.0.1', 5807 ...
- INS-35178错误,AMM及ASMM区别
遇到这个报错,就使用asmm 一般先装库,再opatch到最新补丁,最后dbca建库,物理内存大于4G不能用AMM只能用ASMM 内存越大,全自动管理就越费劲,出错概率就越高,内存抖动 oracle的 ...
- Centos7添加磁盘并分区格式化
1.安装前准备 [root@localhost ~]# yum install xfsprogs [root@localhost ~]# modprobe xfs [root@localhost ~] ...
- MySQL读写分离之MyCAT
Mycat实现MySQL主从复制读写分离 MyCAT的安装及部署 1.部署jdk环境 MyCAT用Java开发,需要有JAVA运行环境,mycat依赖jdk1.7的环境 1)上传jdk [root@l ...
- JS高阶---数据、变量、内存
[一]基础 (1)什么是数据? 存储在内存里 代表特定信息 本质为0101,二进制数据 (2)什么是内存? 内存条通电后产生的可存储数据的空间(临时的) 拓展: 1.2种数据 2.内存分类--栈和堆 ...