我在Qt Creator中编写了这个程序,但我不确定如何运行它。这是我的代码:
#include <QtCore/QCoreApplication>
using namespace std;
#include <iostream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
string str;
cin >> str;
cout << " str is : " << str;
return a.exec();
}
当我运行它时,我的控制台会显示:
Starting /home/hamed/qt programs/test3-build-desktop/test3...
......没有任何反应。我该怎么办?
答案 0 :(得分:3)
当复制粘贴你的代码时,它按预期运行(好吧,它不会终止,但会运行)。这是我在命令行中所做的:
cd testproject
qmake -project
qmake
make
./testproject
正如上面的评论中所提到的,Qt本身就是一个库,所以当你说“从Qt内部”运行它时,你可能指的是某些IDE - 这种行为完全取决于你正在使用的IDE。
<强>更新强>
来自您的留言
Starting /home/hamed/qt programs/test3-build-desktop/test3...
我假设您使用的是QtCreator IDE,它不允许您在运行时输入控制台。我不知道你是否可以这样做,但是如果你在控制台中输入你的项目目录并使用./projectname
它就可以了。上面提到的建筑部分将由QtCreator处理。
另一次更新:
查看this thread,了解如何直接从QtCreator开始工作。
答案 1 :(得分:2)
没有任何反应!!
你的程序正在期待输入,正如你在这里写的那样:
cin >> str;
我该怎么办?
只需输入内容并按输入。
答案 2 :(得分:2)
在QTimer::singleShot(0, &a, SLOT(quit()));
行之前添加return a.exec();
并且不要忘记#include <QtCore/QTimer>
(或者您可以让生活更轻松并导入所有内容#include <QtCore>
)。
a.exec()
进入等待事件的事件循环;通常以具有图形用户界面的用户输入的形式。然而,这是一个命令行程序,并没有真正的方法让用户发送一个事件,因此它坐着并永远等待。这对于服务器类型的应用程序很有用,但不适用于您在此处执行的操作。 :)
(注意,这是您的应用程序似乎什么都不做的众多原因之一。您可能需要在程序执行预期之前遵循其中的几个答案)