我有一个用C编写的控制台应用程序,它只需从用户那里获取一个整数,并根据给定的数字打印文本。我想要一个基于Qt的GUI,它可以向C程序发送一个整数,并读取该程序发送的字符串。但我不知道怎样才能让他们交流。有什么想法吗?
仅供参考:我不想把我的C程序合并到Qt中。他们需要分开。
我现在使用的是Qt 5.0.2。
谢谢!
您可以使用QProcess
,它将充当IODevice
,允许写入(到stdin)或读取(从stdout/stderr)
查看文档中的示例http://qt-project.org/doc/qt-5.0/qtcore/qprocess.html例如
- 你的Qt应用程序将启动你的C程序作为一个QProcess
- 它将与write/readAllStandardOutput()进行交互
- 等待它完成
您正在寻找QProcess(来自Qt文档):
QObject *parent;
...
QString program = "./path/to/Qt/examples/widgets/analogclock";
QStringList arguments;
arguments << "-style" << "motif";
QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);
您可以通过通道使用流程talk
。