類 QDesktopServices 提供的方法 訪問 經常使用的桌面 服務 , 如 瀏覽 器 、 播放器、 電子郵件客戶端 、 咱們 使用 QDesktopServices :: openUrl(url) ,能夠根據指定的url 打開Web 瀏覽 器 , 並返回 結果,若是 成功返回true ,不然 返回false。相應的能夠打開文件(夾),可執行程序等!html
若是想要啓動其餘應用程序使用QProcess, 當發生錯誤時,能夠根據 指定 的 錯誤 描述 所發生 的錯誤類型 。this
描述:在界面啓動後,可經過點擊按鈕啓動一個外部指定的程序!url
myWidget::myWidget(QWidget *parent) :
QWidget(parent)
{
QPushButton *push_button = new QPushButton(this);
connect(push_button, SIGNAL(clicked()), this, SLOT(startProcess())); orm
process = new QProcess();
QObject::connect(process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(processError (QProcess::ProcessError)));
} htm
void myWidget::startProcess()
{
process->start("E:\\a\\b.exe");
} blog
void myWidget::processError(QProcess::ProcessError error)
{
switch(error)
{
case QProcess::FailedToStart:
QMessageBox::information(0,"FailedToStart","FailedToStart");
break;
case QProcess::Crashed:
QMessageBox::information(0,"Crashed","Crashed");
break;
case QProcess::Timedout:
QMessageBox::information(0,"FailedToStart","FailedToStart");
break;
case QProcess::WriteError:
QMessageBox::information(0,"Timedout","Timedout");
break;
case QProcess::ReadError:
QMessageBox::information(0,"ReadError","ReadError");
break;
case QProcess::UnknownError:
QMessageBox::information(0,"UnknownError","UnknownError");
break;
default:
QMessageBox::information(0,"default","default");
break;
}
} get
如上:在程序退出時,啓動的外部程序不會隨着主程序的退出而退出的,若是不但願這種狀況發生。
能夠在程序退出以前,添加以下代碼 it
if(process) io
{form
process->close();
delete process;
process = NULL;
}