QT for Symbian 开发入门

Getting started with Qt for Symbian

 

ID Creation date29 December 2008
PlatformS60 3rd Edition, S60 5th EditionTested on devicesEmulator
CategoryQt for SymbianSubcategoryGetting started

 

Keywords (APIs, classes, methods, functions): PushButton, TextLabel, Signal and Slot

 

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

 

  • 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...

Image: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 The final release of Qt for Symbian installation is at Qt for Symbian installation

First Step

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

Image: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.

Image:Step2.jpg

 

Third Step

Enter a name for the project and click Next.

Image:Step3.jpg

 

Fourth Step

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

Image:Step4.jpg

 

Fifth Step

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

Image:Step5.jpg

 

Sixth Step

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

Image:Step6.jpg

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

Image:Step7.jpg

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

Image:Properties.JPG

 

Include Qt Views

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

Image: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.

Image: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

Image:TextLabel.png

Hello push button

Image:HelloButton.png

Exit push button

Image:ExitButton.png

 

Implementing Signal and Slot mechanism for Exit push button

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

Image:QtSignalSlotView.png

  • Click Image: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.

Image:QtSender.png

Signal

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

Image:QtSignal.png

Receiver

  • HelloClass is the receiver of this event handling mechanism.

Image:QtReceiver.png

Slot

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

Image: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

Image:InitialStateEmulator.png

Hello button pressed state

Image: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值