为什么要在命令行应用程序中包含QtWidgets?

时间:2013-10-17 03:38:40

标签: c++ qt console widget

我创建了一个简单的Qt控制台应用程序(基于Qt提供的示例代码)。虽然这是一个控制台应用程序,但ldd显示了很多链接的X11内容。

我在.pro文件中注意到我有QT += widgets。对于控制台应用程序来说这似乎很奇怪,所以我删除了小部件但没有编译节目:

main.cpp:13:24: error: QApplication: No such file or directory
main.cpp: In function ‘int main(int, char**)’:
main.cpp:26: error: ‘QApplication’ was not declared in this scope
main.cpp:26: error: expected ‘;’ before ‘app’
main.cpp:47: error: ‘app’ was not declared in this scope
main.cpp: At global scope:
main.cpp:21: warning: unused parameter ‘argc’
main.cpp:21: warning: unused parameter ‘argv’
make: *** [main.o] Error 1

有人能告诉我发生了什么事吗?我是否需要控制台应用程序的小部件?如果没有,为什么我不能成功地删除它?

1 个答案:

答案 0 :(得分:5)

QApplication是Qt 5中QtWidgets模块的一部分,所以如果你想使用它,那么你需要包含它。

如果您根本不需要任何GUI内容,请改用QCoreApplication。它位于QtCore模块中,不需要包含精美的图形部件。