×
Namespaces

Variants
Actions
(Difference between revisions)

Archived:Getting started with Qt

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Add timestamp to review/featured)
hamishwillee (Talk | contribs)
m (Add ArticleNeedsUpdate template)
Line 1: Line 1:
 
[[Category:Qt]][[Category:Symbian]]
 
[[Category:Qt]][[Category:Symbian]]
 +
{{ArticleNeedsUpdate|timestamp=20110420010156|user=[[User:Hamishwillee|Hamishwillee]]|This article uses legacy SDKs and Carbide.c++. It has been partially updated to refer to the [[Nokia Qt SDK]] but it needs to refer to the  Qt Creator IDE instead of Carbide.c++.}}
 +
 
{{FeaturedArticle|timestamp=20090104 }}
 
{{FeaturedArticle|timestamp=20090104 }}
 
{{ReviewerApproved|timestamp=20090904}}
 
{{ReviewerApproved|timestamp=20090904}}
Line 12: Line 14:
 
|keywords=PushButton, TextLabel, Signal and Slot
 
|keywords=PushButton, TextLabel, Signal and Slot
 
}}
 
}}
 
{{Warning|This article is out of date. Developers should use the [[Nokia Qt SDK]] which includes the Qt Creator IDE.}}
 
 
  
  
Line 23: Line 22:
 
== Prerequisite==
 
== Prerequisite==
  
* Download and Install latest version [[Qt for Symbian - Installation packages]] which has links on how to install the latest version
+
* Download and install the [[Qt SDK]]
  
  
Line 32: Line 31:
 
In the above screen you will need to use the directory path for <br>
 
In the above screen you will need to use the directory path for <br>
 
the current version e.g. <b>c:\Qt\4.6.0\bin and c:\Qt\4.6.0\include</b>
 
the current version e.g. <b>c:\Qt\4.6.0\bin and c:\Qt\4.6.0\include</b>
The final release of Qt for Symbian installation is at [http://wiki.forum.nokia.com/index.php/Qt_for_Symbian_-_Installation_packages Qt for Symbian installation]
 
  
 
== First Step ==
 
== First Step ==

Revision as of 04:01, 20 April 2011

Needs-update.pngThis article needs to be updated: If you found this article useful, please fix the problems below then delete the {{ArticleNeedsUpdate}} template from the article to remove this warning.

Reasons: hamishwillee (20 Apr 2011)
This article uses legacy SDKs and Carbide.c++. It has been partially updated to refer to the Nokia Qt SDK but it needs to refer to the Qt Creator IDE instead of Carbide.c++.

Featured Article
04 Jan
2009
{{{width}}}
04 Sep
2009
Article Metadata
Tested with
Devices(s): Emulator
Compatibility
Platform(s): S60 3rd Edition, S60 5th Edition
Symbian
Article
Keywords: PushButton, TextLabel, Signal and Slot
Created: (29 Dec 2008)
Last edited: hamishwillee (20 Apr 2011)


Contents

Introduction

This article is for beginners who want to start development in Qt for Symbian. Before following the steps given here please make sure that Carbide.c++, S60 SDK and Qt for Symbian are properly installed.

Prerequisite

  • Download and install the Qt SDK


  • Carbide.c++ 2.0 does not automatically locate your Qt installation, so you need to tell it where Qt is installed. This is done through the following settings:
  Carbide.c++ preferences: Window > Preferences > Qt > Add...

Qt Preference.PNG
In the above screen you will need to use the directory path for
the current version e.g. c:\Qt\4.6.0\bin and c:\Qt\4.6.0\include

First Step

Open the Carbide IDE and click File > New > Qt Project.

Step1.jpg


Second Step

A new window will open on the screen. This will show the application types that can be created. Click Qt GUI Widget and then click Next.

Step2.jpg


Third Step

Enter a name for the project and click Next.

Step3.jpg


Fourth Step

Select the SDK to create the project for and click Next.

Step4.jpg


Fifth Step

Select the module(s) and click Next. For our example, click Next without selecting any extra modules.

Step5.jpg


Sixth Step

The class name is required. By default it is the application name. Click Finish to proceed.

Step6.jpg

After finishing these steps, the project is ready. Several files are created automatically as shown in the following screenshot.

Step7.jpg

If you have more than one version of Qt for Symbian installed on your machine, choose the correct version as shown here:

Properties.JPG


Include Qt Views

  • Include views for Qt from:
  Carbide.c++ > Windows > Show View > Other... > Qt

QtView.png

  • View selection depends on the application. However, at least the following views must be selected:
  1. Qt C++ Widget Box
  2. Qt C++ Property Editor
  3. Qt C++ Signal Slot Editor

Adding controls

  • Open Hello.ui and place the control from the Qt C++ Widget Box.

QtWidgetBox.png

  • In this example, two push buttons and one text label will be added.
  • The display text of an object can be changed by right clicking on object > Change text...
  • The name of an object can be changed as shown in the following screenshots.

Text label

TextLabel.png

Hello push button

HelloButton.png

Exit push button

ExitButton.png


Implementing Signal and Slot mechanism for Exit push button

  • Open Hello.ui.
  • Open the Qt C++ Signal Slot Editor view.

QtSignalSlotView.png

  • Click QtSignalPlus.png to add an entry for handling events on control.
  • In this example, we will handle events on the Exit push button
  • The application will terminate when the user clicks the Exit push button

Sender

  • exitButton is the sender of the signal.

QtSender.png

Signal

  • Select the signal clicked() to be sent by exitButton.

QtSignal.png

Receiver

  • HelloClass is the receiver of this event handling mechanism.

QtReceiver.png

Slot

  • Slot is the action performed when exitButton is clicked(). To exit from the application, select close().

QtSlot.png


Implementing the Hello push button

  • In this example, we implement the Hello button event by coding in the files Hello.h and Hello.cpp.

Header file

#ifndef HELLO_H
#define HELLO_H
 
#include <QtGui/QWidget>
#include "ui_Hello.h"
 
class Hello : public QWidget
{
Q_OBJECT
 
public:
Hello(QWidget *parent = 0);
~Hello();
 
public slots: //We have added this section to handle "clicked()" event on "helloButton"
void ShowHelloText(); // Fill the label text on clicking "Hello" button
 
private:
Ui::HelloClass ui;
};
 
#endif // HELLO_H

Source file

#include "Hello.h"
 
Hello::Hello(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
 
// Signal and slot mechanism for "helloButton"
QObject::connect(ui.helloButton, SIGNAL(clicked()), this, SLOT(ShowHelloText()));
}
 
Hello::~Hello()
{
 
}
 
//We have implemented the following function to display "HelloWorld!!!" text in TextLabel
void Hello::ShowHelloText()
{
ui.label->setText("HelloWorld!!!");
}


Output

Initial state

InitialStateEmulator.png

Hello button pressed state

HelloPressedEmulator.png


Example application

  • Extract this example application: Hello.zip
  • Import the .pro file from the previously extracted application in your Carbide.c++ IDE.
  Carbide.c++ >> Import >> Qt >> Qt Project >> Hello.pro

Feedback

  • If you encounter any problems in creating your HelloWorld application in Qt, please enter your feedback in the Comment page of this article.
553 page views in the last 30 days.
×