查看完整版本: [-- Qprcoess 一个比较坑的问题 --]

QTCN开发网 -> Qt基础编程 -> Qprcoess 一个比较坑的问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

onlyone 2019-08-16 16:13

Qprcoess 一个比较坑的问题

qt5.7版本。 Qprcoess 的void QProcess::setArguments(const QStringList &arguments)


用这个区把所有的参数传递给执行程序。但是发现这样不行。比如


Qprcess proc;
QStringList args;
args << "-i" << "123456" << "-f" <<"out";
proc.start("myexe",args);


发现执行总是报错。但是如果这样写
QStringList args;
args << "-i 123456  -f out;
就没问题。感觉这个参数列表没法使用列表,只能使用一个字符串。


还有就是,读取不到myexec输出到屏幕的信息。
挂接该void readyReadStandardOutput()信号,槽函数从来就没法执行。

是否有人遇到过这类诡异问题?


小韩老师 2019-08-16 17:11
使用过该类,通过标准输入输出std::out等,可以获取输出的数据。检查一下是否是标准输出?

liulin188 2019-08-17 11:13
我是用wait阻塞

fsu0413 2019-08-17 20:22
myexe如果是你自己写的程序的话,检查一下参数处理机制。如果只是像你这么写可以用的话,多半那个程序的参数处理就是错的。
如果你在命令行里运行过myexe的话,我想看下你的调用方式。

一般程序的输出有两个通道,一个标准输出,还有一个是标准错误。
命令行运行的时候标准输出和标准错误都会在命令行中输出,看起来没啥区别,但是在编程的时候需要考虑标准输出和标准错误两个通道都输出什么。
挂readyreadstandardoutput信号没反应的话,检查一下输出是否在标准错误里。

hehui 2019-08-26 07:59
你这个问题我遇到过刚好相反的,参数写成一个字符串不行,分开成list就行 了,这个可能跟被调用程序或操作系统有关


查看完整版本: [-- Qprcoess 一个比较坑的问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled