• 4718阅读
  • 1回复

[提问]请问QTwindows下如何关闭打开的程序呢。 [复制链接]

上一主题 下一主题
离线xiao苦
 
只看楼主 正序阅读 楼主  发表于: 2011-09-08
rt,
   QString profile ="mspaint.exe  ";    QString path;    if(pro == NULL)    {        pro = new QProcess(this);    path = ui->lineEditBMPFile->text();    path.replace ( QString('\\'),QString("\\\\"));    //path = "C:/Documents and Settings/Administrator/桌面";    //pro-> (&path);   // profile += '"';   // QStringList file  = ui->lineEditBMPFile->text();  //  profile += "C:"+'\\'+"Documents and Settings"+'\\'+"Administrator"+'\\'+"桌面"+'\\'+"未命名.bmp";    //profile += '"';   // profile = "未命名.BMP"; //   pro->execute (profile);    //profile += ui->lineEditBMPFile->text();   // MainWindow::hide ();   // connect(pro,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(proExit()));   //connect(pro,SIGNAL())    if( pro->startDetached (profile,QStringList() <<  path))    {    connect(pro, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processError(QProcess::ProcessError)));    connect(pro, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus)));    ui->textBrowserShowCom->insertPlainText("程序已启动...\n");}    else    {        ui->textBrowserShowCom->insertPlainText("程序启动失败...\r\n");    }    //pro->finished ();}    else    {        pro->close ();        disconnect(pro, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processError(QProcess::ProcessError)));        disconnect(pro, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus)));         delete pro;        pro = NULL;    }我能够打开mspaint,但是我无法关闭它,它在信号机制根本就没连上QT程序,虽然打开了,但是好像与QPROCESS无关的, 点退出mspaint根本就
无法传出号到主程序上,同样的,主程序也无法结束这个,结果就是可以打开一大堆mspaint,但是只能外面手动关。。。

请问怎么解决。,。
我是新手,第一次用qt.

离线jdwx

只看该作者 1楼 发表于: 2011-09-08
回 楼主(xiao苦) 的帖子
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
快速回复
限100 字节
 
上一个 下一个