Qt程序基本框架

Qt:HelloWorld

本文将针对Qt程序的基本框架进行讲解。

一个简单的Qt工程

一个简单的Qt工程主函数代码如下

1
2
3
4
5
6
7
8
int main(int argc, char *argv[])
{
QApplication app(argc, argv); //建立app
TetrixWindow window;
window.show();
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
return app.exec();
}

其中主要包括两个部分

  1. QApplication的建立,QApplication主要用于为QWidget应用程序提供特定的初始化及定制化,一个Qt程序可能有多个窗口,但只有一个QApplication对象
  2. 窗口的定制与显示

关于QApplication需要注意的两点

  • 如果不使用QWidget,那么应当使用QGuiApplication
  • 如果需要同时提供GUI和非GUI版本,可以使用下面的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
QCoreApplication* createApplication(int &argc, char *argv[])
{
for (int i = 1; i < argc; ++i)
if (!qstrcmp(argv[i], "-no-gui"))
return new QCoreApplication(argc, argv);
return new QApplication(argc, argv);
}

int main(int argc, char* argv[])
{
QScopedPointer<QCoreApplication> app(createApplication(argc, argv));

if (qobject_cast<QApplication *>(app.data())) {
// start GUI version...
} else {
// start non-GUI version...
}

return app->exec();
}

参考文献

0%