最近工作中为了测试某个模块,需要把原先输入模块部分,改成控制台输入来方便测试。在QT中,我们可以使用 QTextStream 类来读取用户的输入来达到目的。下面是一个简单的例子:
#include <QCoreApplication>
#include <QTextStream>
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
QTextStream cin(stdin);
QString input;
while (true) {
input = cin.readLine();
if (input == "q") {
break;
}
qDebug() << "You entered: " << input;
}
return app.exec();
}
当然,我们也可以把这段代码写到一个线程中来执行,例如:
void startForTestThread()
{
QThread threadM;
ForTest pForTestM = new ForTest();
pForTestM->moveToThread(&threadM);
threadM.start();
connect(&threadM, SIGNAL(started()), this, SLOT(waitForEnter()));
}
void waitForEnter()
{
// for test
QTextStream cin(stdin);
QString input;
while (true) {
input = cin.readLine();
if (input == "q") {
break;
}
qDebug() << "You entered: " << input;
// do something with "input"
sendSignalSimulate(input.toInt());
}
}
只要在你的程序合适位置调用startForTestThread函数即可。
综上,我们就可以通过输入不同的参数来进行测试了。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » QT下,如何获取控制台输入
发表评论 取消回复