Qt入门(7)——QApplication类
QApplication类管理图形用户界面应用程序的控制流和主要设置。它包含主事件循环,在其中来自窗口系统和其它资源的所有事件被处理和调度。也用于处理应用程序的初始化和结束,并且提供对话管理。它也处理绝大多数系统范围和应用程序范围的设置。
任何一个使用Qt的图形界面的程序,都都必须有一个QApplication对象,而且只能有一个。
QApplication对象是可以通过全局变量qApp访问。它的负责的主要范围有:
1、使用用户的桌面设置,例如palette()、font()和doubleClickInterval()来初始化应用程序。如果用户改变全局桌面,例如通过一些控制面板,它会对这些属性保持跟踪。
2、执行事件处理,也就是说它从低下的窗口系统接收事件并且把它们分派给相关的窗口部件。通过使用sendEvent()和postEvent(),你可以发送你自己的事件到窗口部件。
3、分析命令行参数并且根据它们设置内部状态。关于这点的详细情况请参考下面的构造函数文档。
4、定义由QStyle对象封装的应用程序的观感。在运行状态下,可以通过setStyle()来改变。
5、指定应用程序如何分配颜色。
7、定义默认文本编码并且提供通过translate()用户可见的本地化字符串。
8、提供一些像desktop()和clipboard()这样的魔术般的对象。
9、它知道应用程序的窗口。你可以使用widgetAt()来询问在一个确定点上存在哪个窗口部件,得到一个topLevelWidgets()(顶级窗口部件)的列表和通过closeAllWindows()来关闭所有窗口,等等。
10、管理应用程序的鼠标光标处理。
11、它提供复杂的对话管理支持。这使得当用户注销时,它可以让应用程序很好地结束,如果无法终止,撤消关闭进程并且甚至为未来的对话保留整个应用程序的状态。
常用的几个方法:
1、 int QCoreApplication::exec ():启动程序,进入消息循环;
2、 QCoreApplication::exit ( int returnCode = 0 ):终止消息循环,退出程序;
3、QString QCoreApplication::applicationDirPath ():返回应用程序的路径,不包含最后的“\”;
4、void QCoreApplication::addLibraryPath ( const QString & path ):设置一个库的优先搜索路径;
5、QString QCoreApplication::applicationFilePath ():返回应用程序的全路径名;
6、qint64 QCoreApplication::applicationPid ():返回应用程序的进程ID;
7、void QCoreApplication::postEvent ( QObject * receiver, QEvent * event ):将事件发送到队列并立即返回;
8、bool QCoreApplication::sendEvent ( QObject * receiver, QEvent * event ):发送事件到队列,并等待返回结果;
9、 void QCoreApplication::sendPostedEvents ( QObject * receiver, int event_type ):立即分派事件队列中先前由portEevent发送的事件;
10、 void QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents ):立即分派事件队列中flags指定的事件,直到没有事件可处理;
11、QString QCoreApplication::translate ( const char * context, const char * sourceText, const char * disambiguation, Encoding encoding, Encoding encoding = CodecForTr ):通过查询安装的消息文件,返回sourceText的翻译文本,如果安装文件不包含它则返回“sourceText”。context通常是一个类名(例如,“MyDialog”)并且sourceText是英语文本或者一个短的标识文本,如果输出文本很长可以通过一个短的名称查找到一个长的名称。
下面是一个简单的例子:
#include <QApplication>
#include <QWidget>
#include <QPushButton> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget MainWindow;
MainWindow.setMinimumSize(200, 100);
MainWindow.setMaximumSize(200, 100); QPushButton button("Hello, World", &MainWindow);
button.setGeometry(20, 20, 160, 60);
MainWindow.show();
return a.exec();
}
运行结果:
aaarticlea/png;base64,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" alt="" />
Qt入门(7)——QApplication类的更多相关文章
- Qt入门-表格类QTableWidget
原文 :http://blog.csdn.net/xgbing/article/details/7774737 表格是GUI中常用的控件,在Qt中,常用的表格类是QTableWidget. 示例: Q ...
- QT 入门 -QApplication QPushButton QDialog Ui类型的手工使用
QT 1.工具 assistant 帮助文档 qtconfig QT配置工具 qmake QT的make与项目文件智能创建工具 uic UI界面的设计文件的编译工具 mo ...
- 第15.28节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTableWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 表格部件为应用程序提供标准的表格显示工具,在表格内可以管理基于行和列的数据项,表格中的最大 ...
- 第15.27节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QTreeWidget详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 树部件(Tree Widget)是Qt Designer中 Item Widgets(It ...
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...
- Qt入门(9)——Qt中的线程支持
Qt对线程提供了支持,基本形式有独立于平台的线程类.线程安全方式的事件传递和一个全局Qt库互斥量允许你可以从不同的线程调用Qt方法.警告:所有的GUI类(比如,QWidget和它的子类),操作系统核心 ...
- Qt入门(4)——Qt常见控件
Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求.我们将对这些控件和对话框作一个大概的介绍. 1. QLabel 定义 QLabel* m_labelOrdered = newQLabe ...
- Qt入门学习——Qt 5 帮助文档的使用
Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必 ...
- Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装
转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...
随机推荐
- [置顶] Oracle 11g R2 RAC:使用 srvctl 工具管理 service 资源
1.使用 srvctl 工具创建 service 资源 srvctl add service -d db_unique_name -s service_name {-r "preferred ...
- php 自定义求数组差集,效率比自带的array_diff函数还要快(转)
<?phpfunction array_different($array_1, $array_2) { $array_2 = array_flip($array_2); //将数组键值调换 fo ...
- jboss7 Java API for RESTful Web Services (JAX-RS) 官方文档
原文:https://docs.jboss.org/author/display/AS7/Java+API+for+RESTful+Web+Services+(JAX-RS) Content Tuto ...
- Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command
错误如下: Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibEx ...
- 转 - CSS深入理解vertical-align和line-height的基友关系
一.想死你们了 几个星期没有写文章了,好忙好痒:个把月没有写长篇了,好忙好想:半个季度没在文章中唠嗑了,好痒好想. 后面一栋楼有对夫妻在吵架,声音雄浑有力,交锋酣畅淋漓,还以为只有小乡镇才有这架势,哦 ...
- excel数据导入到sqlserver中---------工作笔记
调用页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sys ...
- 【转】overload与override的区别
[转]overload与override的区别 override(重写,覆盖) 1.方法名.参数.返回值相同. 2.子类方法不能缩小父类方法的访问权限. 3.子类方法不能抛出比父类方法更多的异常(但子 ...
- 【转】ibatis的简介与初步搭建应用
[转]ibatis的简介与初步搭建应用 一.ibatis的简介 ibatis是什么东西就不介绍了,自己去找谷老师. 这里讲下自己的使用体会.之前自己学过Hibernate,是看尚学堂的视频教学的,看完 ...
- 千万数量级分页存储过程 +AspNetPager现实分页
存储过程 USE [ForeignTradeDB] GO /****** Object: StoredProcedure [dbo].[CommonGetDataPager] Script Date: ...
- maven update 以后报错。
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com ...