QApplication类:
在 Qt Widgets
应用程序中管理GUI
程序的控制流和主要设置,处理 QWidget
特有的初始化和收尾工作。一个应用程序只应该定义一个 QApplication
类的实例。
pro文件
QT+=widgets
头文件
#include<QApplication>
继承关系 父----->子 :
QObject----QCoreApplication---QGuiApplication--QApplication
QCoreApplication
对于非GUI
的Qt
程序,请使用QCoreApplication
以避兔不必要地初始化图形用户界面所需的资源。
QGuiApplication
对于是GUI
(不基于QWidget
)的Qt应用程序,请用QGuiApplication
,因为它不依赖于QtWidgets
库
QApplication
对于是GUI
且基于QWidget
的Qt应用程序,请使用QApplication
QGuiApplication类:
静态成员函数 | 用法 |
---|---|
applicationState | 返回应用程序状态 |
clipboard | 获取剪切板 |
palette | 返回默认的应用程序调色板 |
setPalette | 设置运用程序调色板 |
font | 返回默认的应用程序字体 |
setFont | 设置应用程序字体 |
setWindowIcon | 设置应用程序图标 |
exec | 进入主事件循环并等待直到调用exit() |
QApplication类:
静态成员函数 | 用法 |
---|---|
desktop | 返回桌面小部件 |
allWidgets | 返回应用程序中所有窗口小部件的列表 |
beep | 使用默认的声音和声音响起提示音 |
topLevelAt | 返回坐标点(x,y)处的顶级窗口小部件 |
widgetAt | 返回位于全局屏幕坐标点(x,y)的窗口小部件 |
setActiveWindow | 将窗口小部件设置为响应系统事件活动窗口 |
exec | 进入主事件循环并等待知道调用exit() |
exit | 调用次函数后,应用程序离开主事件循环,exec()将返回exit中的返回码 |
closeAllWindows | 关闭所有顶层窗口,窗口以随机顺序关闭,关闭最后一个窗口后,应用程序退出。 |
示例代码:
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include <QWidget>
int main(int argc, char *argv[])
{
//对于基于Widget的GUI程序的 唯一应用程序实例
QApplication a(argc, argv);
//只能有一个实例
qDebug()<<"是否相同" <<( ( &a == qApp )&& (&a ==QApplication::instance() ))<<endl;
MainWindow w;
w.show();
QWidget w2;//第二个窗口
w2.show();
//获取所有的Widget
QWidgetList list = QApplication::allWidgets();
qDebug()<<"窗口个数"<<list.count()<<endl;
//设置运用程序字体
QFont font;
font.setFamily( "STXingkai");//华文行楷
QApplication::setFont(font );
//设置调色板
QPalette palette = QApplication::palette();
palette.setColor(QPalette::Window, Qt::red);
QApplication::setPalette(palette);
//设置当前激活的窗口
QApplication::setActiveWindow(&w);
int ret= a.exec(); //进入事件循环,除非调用exit(XXX) 或者 关闭所有窗口会结束此循环
qDebug()<<"返回"<<ret<<endl;
return ret;
}