×
Namespaces

Variants
Actions
(Difference between revisions)

How to launch other applications in Qt

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Hamishwillee - Bot update - Fix ArticleMetaData and RevieweApproval)
hamishwillee (Talk | contribs)
m (Text replace - "<code cpp>" to "<code cpp-qt>")
 
(6 intermediate revisions by one user not shown)
Line 1: Line 1:
[[Category:Qt]]
+
[[Category:Qt]][[Category:How To]][[Category:Code Examples]]
 +
{{Abstract|This code example shows how to start other applications from within a Qt application. It demonstrates [http://doc.qt.nokia.com/stable/qdesktopservices.html#openUrl QDesktopServices::openUrl()] for opening URLs in the default browser and [http://doc.qt.nokia.com/stable/qprocess.html QProcess] for launching arbitrary applications. }}
  
 
+
{{ArticleMetaData <!-- v1.2 -->
{{ArticleMetaData <!-- v1.1 -->
+
|sourcecode= [[Media:QtAppLauncher.zip]]
|sourcecode= [[Media:QtAppLauncher.zip]]  
+
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 
|devices= Nokia 5800
 
|devices= Nokia 5800
Line 10: Line 10:
 
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
 
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
 
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
 
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
|signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
+
|signing= Self-Signed
|capabilities= <!-- Capabilities required (e.g. Location, NetworkServices.) -->
+
|capabilities= None
 
|keywords= QDesktopServices::openUrl(), QProcess::start()
 
|keywords= QDesktopServices::openUrl(), QProcess::start()
|id= ...
 
 
|language= <!-- Language category code for non-English topics - e.g. Lang-Chinese -->
 
|language= <!-- Language category code for non-English topics - e.g. Lang-Chinese -->
 
|translated-by= <!-- [[User:XXXX]] -->
 
|translated-by= <!-- [[User:XXXX]] -->
Line 26: Line 25:
 
<!-- The following are not in current metadata -->
 
<!-- The following are not in current metadata -->
 
|subcategory=  
 
|subcategory=  
|category= Qt
 
 
}}
 
}}
 
 
==Overview==
 
 
{{Abstract|visible=true|This code example shows how to start other applications from within a Qt application. It demonstrates [http://doc.qt.nokia.com/stable/qdesktopservices.html#openUrl QDesktopServices::openUrl()] for opening URLs in the default browser and [http://doc.qt.nokia.com/stable/qprocess.html QProcess] for launching arbitrary applications. }}
 
 
This snippet can be self-signed.
 
 
==Preconditions==
 
 
* Download and install the [[Qt SDK]]
 
  
 
==Launching web browser==
 
==Launching web browser==
Line 44: Line 31:
  
 
'''Header required'''
 
'''Header required'''
<code cpp>
+
<code cpp-qt>
 
#include <QDesktopServices>
 
#include <QDesktopServices>
 
#include <QUrl>
 
#include <QUrl>
Line 50: Line 37:
  
 
'''Source code'''
 
'''Source code'''
<code cpp>
+
<code cpp-qt>
 
//openUrl is static method of class QDesktopServices, so no need to create instance of it.
 
//openUrl is static method of class QDesktopServices, so no need to create instance of it.
 
//Open URL in browser
 
//Open URL in browser
Line 62: Line 49:
  
 
'''Header required'''
 
'''Header required'''
<code cpp>
+
<code cpp-qt>
 
#include <QDesktopServices>
 
#include <QDesktopServices>
 
#include <QUrl>
 
#include <QUrl>
Line 68: Line 55:
  
 
'''Source code'''
 
'''Source code'''
<code cpp>
+
<code cpp-qt>
 
//openUrl is static method of class QDesktopServices, so no need to create instance of it.
 
//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.
 
//to open vedio file in realplayer give full path here.
Line 78: Line 65:
  
 
'''Header required'''
 
'''Header required'''
<code cpp>
+
<code cpp-qt>
 
#include <QDesktopServices>
 
#include <QDesktopServices>
 
#include <QUrl>
 
#include <QUrl>
Line 84: Line 71:
  
 
'''Source code'''
 
'''Source code'''
<code cpp>
+
<code cpp-qt>
 
//openUrl is static method of class QDesktopServices, so no need to create instance of it.
 
//openUrl is static method of class QDesktopServices, so no need to create instance of it.
 
//Open email client.
 
//Open email client.
Line 93: Line 80:
  
 
'''Header required'''
 
'''Header required'''
<code cpp>
+
<code cpp-qt>
 
#include <QProcess>
 
#include <QProcess>
 
</code>
 
</code>
Line 100: Line 87:
  
 
'''Header file'''
 
'''Header file'''
<code cpp>
+
<code cpp-qt>
 
void processError(QProcess::ProcessError err);
 
void processError(QProcess::ProcessError err);
  
Line 108: Line 95:
  
 
'''Source code'''
 
'''Source code'''
<code cpp>
+
<code cpp-qt>
 
QtAppLauncher::QtAppLauncher(QWidget *parent)
 
QtAppLauncher::QtAppLauncher(QWidget *parent)
 
     : QMainWindow(parent)
 
     : QMainWindow(parent)
Line 157: Line 144:
 
== Code Example ==
 
== Code Example ==
  
* Download  [[File:QtAppLauncher.zip]].
+
* Download  [[File:QtAppLauncher.zip]].[[Category:MeeGo Harmattan]] [[Category:Symbian]]
 
+
<!-- Translation --> [[pt:Como executar o navegador Web, RealPlayer, e outras aplicações, em Qt]]
[[Category:How To]][[Category:Code Examples]]
+

Latest revision as of 04:17, 11 October 2012

This code example shows how to start other applications from within a Qt application. It demonstrates QDesktopServices::openUrl() for opening URLs in the default browser and QProcess for launching arbitrary applications.

Article Metadata
Code ExampleTested with
Devices(s): Nokia 5800
Compatibility
Platform(s): Qt
Symbian
Platform Security
Signing Required: Self-Signed
Capabilities: None
Article
Keywords: QDesktopServices::openUrl(), QProcess::start()
Created: savaj (10 Jun 2009)
Last edited: hamishwillee (11 Oct 2012)

Contents

[edit] Launching web browser

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

#include <QDesktopServices>
#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"));


[edit] Launching RealPlayer

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


Header required

#include <QDesktopServices>
#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"));


[edit] Launching Email Client

Header required

#include <QDesktopServices>
#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"));


[edit] Launching other applications

Header required

#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;
}
}

[edit] Postconditions

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

[edit] Code Example

This page was last modified on 11 October 2012, at 04:17.
508 page views in the last 30 days.
×