How to launch other applications in Qt

From Qt Wiki
Jump to navigation Jump to search

Template:Abstract

Template:ArticleMetaData

Launching web browser[edit | edit source]

The class QDesktopServices provides methods for accessing common desktop services, like browser, player, e-mail client, etc. We use QDesktopServices::openUrl(), which opens the given URL in the appropriate Web browser for the user's desktop environment, and returns true if successful; otherwise returns false. If the URL is a reference to a local file (i.e., the URL scheme is "file") then it will be opened with a suitable application instead of a Web browser. For example, you can use URL "file:///c:/data/abc.png" to open abc.png in its default application. similarly you can play audio/video.

Header required

  1. include <QDesktopServices>
  2. include <QUrl>

Source code //openUrl is static method of class QDesktopServices, so no need to create instance of it. //Open URL in browser QDesktopServices::openUrl(QUrl("http://www.developer.nokia.com/Community/Discussion/forumdisplay.php?40-General-Symbian-C"));

Launching RealPlayer[edit | edit source]

QProcess is used to start external programs and to communicate with them.


Header required

  1. include <QDesktopServices>
  2. include <QUrl>

Source code //openUrl is static method of class QDesktopServices, so no need to create instance of it. //to open vedio file in realplayer give full path here. QDesktopServices::openUrl(QUrl("file:///e:/Videos/Nokia 5800 XpressMusic.mp4"));


Launching Email Client[edit | edit source]

Header required

  1. include <QDesktopServices>
  2. include <QUrl>

Source code //openUrl is static method of class QDesktopServices, so no need to create instance of it. //Open email client. QDesktopServices::openUrl(QUrl("mailto:ratang.gir@gmail.com?subject=Testing feedback&body=HelloFriend"));

Launching other applications[edit | edit source]

Header required

  1. include <QProcess>

The signal error() of QProcess is emitted when an error occurs with the process. The specified error describes the type of error that occurred.

Header file void processError(QProcess::ProcessError err);

QProcess process;


Source code QtAppLauncher::QtAppLauncher(QWidget *parent)

   : QMainWindow(parent)

{ //connect error() to slot processError() to get error, if occurs. QObject::connect( &process, SIGNAL(error(QProcess::ProcessError)),

                     this, SLOT(processError(QProcess::ProcessError)));

//pass the name of executable that you want to launch. i have installed helloworld so passed helloworld. process.start("helloworld"); }

//get errors, if any void QtAppLauncher::processError(QProcess::ProcessError err) { switch(err) { 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; } }

Postconditions[edit | edit source]

The code snippet is expected to launch browser, realplayer and helloworld application.

Code Example[edit | edit source]

pt:Como executar o navegador Web, RealPlayer, e outras aplicações, em Qt