• 7175阅读
  • 9回复

有关QProcess运行终端/usr/bin/gnome-terminal [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 倒序阅读 楼主  发表于: 2009-09-04


我已经使用了输出重定向,为什么那个终端窗口还是跳了出来呢?如何使终端窗口不弹出来。。。。
离线iiiyyyhhhsss

只看该作者 1楼 发表于: 2009-09-04
注:同样的程序,在window下运行cmd.exe完全没有问题,cmd窗口也没有跳出来,乖乖的在我的QTextBrowser上显示了,


而到了linux下,用QProcess运行就不行了,那个终端窗口总是跳出来。。。。
[ 此帖被iiiyyyhhhsss在2009-09-04 22:26重新编辑 ]
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2009-09-04
在windows下:   QP->start("c:/windows/system32/cmd.exe");然后重定向输出,那么cmd窗口既没有出来,显示也在我的界面上出来了


而在linux下: QP->start("/usr/bin/gnome-terminal");然后重定向输出,可终端窗口此时跳了出来,且输出没有放到我的界面上。。。

奇怪,一样的程序,只是运行的外部程序不一样。。。。
离线iiiyyyhhhsss

只看该作者 3楼 发表于: 2009-09-04
我曾经看过dbzhang800有一篇帖说,“既然用QProcess运行外部终端,当然不想终端每次都跳出来“什么什么的。。。。但是我找不到那个贴了。。。
离线iiiyyyhhhsss

只看该作者 4楼 发表于: 2009-09-05
使用ppp->start("notepad.exe");记事本窗体跳了出来。。。

使用ppp->start("cmd.exe");cmd窗体却没有跳出来。。。。

两次查看任务管理器,的确都有notepad.exe和cmd.exe,证明两次都成功调用了这两个外部程序,(注:我把.exe文件放到了当前目录下了。。。)

那么,为什么记事本跳了出来,而cmd却没有跳出来,他们的区别是什么,谁能帮我解释一下。。。?
离线iiiyyyhhhsss

只看该作者 5楼 发表于: 2009-09-05
真的没有人知道吗?

ppp->start("notepad.exe");

ppp->start("cmd.exe");

为什么一个跳出,一个不跳出呢?

网上一点相关资料我都找不到。。。。。麻烦各位帮帮忙,还有就是有没有办法令linux那个终端不跳出来。。。。
离线iiiyyyhhhsss

只看该作者 6楼 发表于: 2009-09-05
大家可以发表一下意见,讨论讨论嘛。。。。。我试想用我的界面模拟整个终端。。。
离线dbzhang800

只看该作者 7楼 发表于: 2009-09-05
这个,你想表达式就是 console 和 gui程序的区别。

cmd 和 notepad 本身一个是console程序一个是gui程序,gui程序肯定要弹出界面的。

同样,你在命令行下书cmd和notepad 也应该看到同样的结果。


至于你说的 gnome-terminal 或者 konsole,从名称看,就是与gnome和kde相关的gui程序,它本身就是对shell程序 : bash、dash等的封装。  你应该考虑的是封装 bash或dash或其他的shell,而不是 gnome-terminal 或konsole等gui界面
离线iiiyyyhhhsss

只看该作者 8楼 发表于: 2009-09-05
研究了一番,终于明白你的意思了。。。那就是说如果我要弄一个自己界面的终端是不能在它的弄好的界面上做的,只能在更低一层去做,工作量肯定是挺大的,是吧?
离线iiiyyyhhhsss

只看该作者 9楼 发表于: 2009-09-05
那么bash等本身也是一个console程序吗?
快速回复
限100 字节
 
上一个 下一个