如何在C ++中创build一个简单的Qt控制台应用程序?
我试图创build一个简单的控制台应用程序来尝试Qt的XMLparsing器。 我在VS2008中开始了一个项目,并得到了这个模板:
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); return a.exec(); }
由于我不需要事件处理,我想知道如果我忽略创build一个QCoreApplication并运行事件循环,是否会陷入困境。 该文件指出,在大多数情况下,这是build议的。
为了好奇,我想知道如何在事件循环中执行一些通用任务,然后终止应用程序。 我无法谷歌相关的例子。
如果你想要运行一个事件循环,这里有一个简单的方法可以构build一个应用程序。
// main.cpp #include <QtCore> class Task : public QObject { Q_OBJECT public: Task(QObject *parent = 0) : QObject(parent) {} public slots: void run() { // Do processing here emit finished(); } signals: void finished(); }; #include "main.moc" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // Task parented to the application so that it // will be deleted by the application. Task *task = new Task(&a); // This will cause the application to exit when // the task signals finished. QObject::connect(task, SIGNAL(finished()), &a, SLOT(quit())); // This will run the task from the application event loop. QTimer::singleShot(0, task, SLOT(run())); return a.exec(); }
不要忘了添加
CONFIG += console
标志在qmake .pro文件中。
剩下的就是使用一些Qt类。 我使用它的一种方式是生成跨平台的stream程。
您根本不需要QCoreApplication
,就像包含其他对象一样包含您的Qt对象,例如:
#include <QtCore> int main() { QVector<int> a; // Qt object for (int i=0; i<10; i++) { a.append(i); } /* manipulate a here */ return 0; }
我设法用QT Creator创build了一个简单的控制台“hello world”
在Windows 7上使用创build者2.4.1和QT 4.8.0
两种方式来做到这一点
Plain C ++
请执行以下操作
- 文件 – 新build文件项目
- 在项目下select:其他项目
- select“Plain C ++ Project”
- input项目名称5.目标select桌面“勾选”
- 项目pipe理只需点击下一步
- 你可以像普通的c ++一样使用c ++命令
要么
QT控制台
- 文件 – 新build文件项目
- 在项目下select:其他项目
- selectQT控制台应用程序
- 目标select桌面“勾选”
- 项目pipe理只需点击下一步
- 添加下面的行(包括您需要的所有C ++)
- 添加“#include'iostream'”
- 添加“使用命名空间标准;”
- 在QCoreApplication之后(int argc,cghar * argv [])10添加variables,以及你的程序代码..
例如:对于QT控制台“hello world”
文件 – 新build文件项目“项目名称”
其他项目 – QT控制台应用程序
目标select“桌面”
项目pipe理 – 接下来
码:
#include <QtCore/QCoreApplication> #include <iostream> using namespace std; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); cout<<" hello world"; return a.exec(); }
CTRL -R运行
用于以上MSVC 2010(QT SDK)的编译器和minGW(QT SDK)
希望这可以帮助别人
正如我刚刚开始使用QT,也search了Www的信息和例子,开始简单的例子仍然search…
您可以调用QCoreApplication :: exit(0)以代码0退出
有同样的问题。 在Youtube上发现了一些video。 所以这里有一个更简单的build议。 这是你需要的所有代码:
#include <QDebug> int main(int argc, char *argv[]) { qDebug() <<"Hello World"<< endl; return 0; }
上面的代码来自Qt5教程:通过构build一个简单的控制台应用程序
多米尼克Thiebaut