You are previewing Qt for Symbian.
O'Reilly logo
Qt for Symbian

Book Description

Qt for Symbian takes a unique look at this cutting-edge programming environment. Step-by-step it explains Qt in an easy to access fashion, using simple examples throughout. A bible for all beginners it covers topics such as:

  • Installing the developer platform / SDK

  • Explaining the basic Qt environment

  • The extension of Qt for Symbian modules

  • Communication

  • Sensors

  • Etc

  • Simple examples for Qt for Symbian

This Nokia-endorsed primer written by developers involved in the new release of Qt will ultimately save you costs, development resources, and will help you get to market faster!

Table of Contents

  1. Copyright
  2. CONTRIBUTORS
  3. FOREWORD
  4. PREFACE
    1. Motivation for the Book
    2. Scope of the Book
    3. Targeted Readership
    4. Note
  5. ABBREVIATIONS
  6. ACKNOWLEDGMENTS
  7. PUBLISHER'S ACKNOWLEDGMENTS
  8. ABOUT THE EDITORS
  9. 1. Introduction and Motivation
    1. 1.1. The Importance of Mobile Developers
    2. 1.2. Symbian OS
      1. 1.2.1. Symbian – The Technology
      2. 1.2.2. Symbian – Evolution to the Leading Smart-Phone Platform
      3. 1.2.3. Symbian – Casual Application Developer
    3. 1.3. Qt
      1. 1.3.1. A Cross-platform Development Environment
      2. 1.3.2. Qt in the Mobile Domain
      3. 1.3.3. Qt Licensing
    4. 1.4. Bibliography
  10. 2. Getting Started
    1. 2.1. Installing the Development Environment
      1. 2.1.1. Ovi Suite
      2. 2.1.2. Java
      3. 2.1.3. Perl
      4. 2.1.4. Symbian Platform SDK
        1. 2.1.4.1. Installing the Symbian SDK
        2. 2.1.4.2. Patching the 3rd Edition Feature Pack 1 SDK
        3. 2.1.4.3. Overview of the Symbian SDK
      5. 2.1.5. Open C/C++ Plug-in
      6. 2.1.6. The Carbide.c++ IDE
        1. 2.1.6.1. Patching the Carbide Compiler
      7. 2.1.7. Qt for Symbian
        1. 2.1.7.1. Installing Qt on the Device
        2. 2.1.7.2. Configuring Qt Support in Carbide.c++
    2. 2.2. Using Carbide.c++ with Qt for Symbian
      1. 2.2.1.
        1. 2.2.1.1. Creating a 'HelloWorld' Application
        2. 2.2.1.2. Building for a Target Device
    3. 2.3. Summary
      1. 2.3.1.
        1. 2.3.1.1. Links
  11. 3. Qt in General
    1. 3.1. Hello World
      1. 3.1.1. Building
      2. 3.1.2. Packaging
    2. 3.2. Basics
      1. 3.2.1. Layouts
      2. 3.2.2. Object Ownership and Memory Management
    3. 3.3. Signals and Slots
      1. 3.3.1. Basic Signals
      2. 3.3.2. Parameters
    4. 3.4. Qt Object Model
      1. 3.4.1. QObject
      2. 3.4.2. Custom Signals and Slots
      3. 3.4.3. Implementing Slots and Emitting Signals
      4. 3.4.4. Meta-object Compiler (moc)
      5. 3.4.5. Connecting Signals and Slots
      6. 3.4.6. Properties and Meta-information
    5. 3.5. User Interface
      1. 3.5.1. Handling Text through Implicit Sharing
      2. 3.5.2. Internationalization
        1. 3.5.2.1. Translating Text
      3. 3.5.3. Widgets, Dialogs and the Main Window
        1. 3.5.3.1. Sub-classing Widgets
        2. 3.5.3.2. Dialogs
        3. 3.5.3.3. Main Window
    6. 3.6. System
      1. 3.6.1. Events
        1. 3.6.1.1. Event Delivery
      2. 3.6.2. Timers and Painting
    7. 3.7. Communication
      1. 3.7.1. Input/Output
      2. 3.7.2. Files and Streams
      3. 3.7.3. Networking and XML
        1. 3.7.3.1. TCP and UDP
        2. 3.7.3.2. High-Level Network Operations
        3. 3.7.3.3. XML
        4. 3.7.3.4. Example: GeocodingWeb Service
        5. 3.7.3.5. Setup
        6. 3.7.3.6. Submitting the HTTP request
        7. 3.7.3.7. Parsing the XML response
    8. 3.8. Bibliography
  12. 4. Qt Mobility APIs
    1. 4.1. Introduction
    2. 4.2. Bearer Management
      1. 4.2.1. Creating a Network Session
    3. 4.3. Contacts
    4. 4.4. The Contacts API
      1. 4.4.1. Creating a New Contact
      2. 4.4.2. Finding a Single Contact Detail
      3. 4.4.3. Editing a Contact Detail
    5. 4.5. Location
      1. 4.5.1. Getting and Following the User's Location
    6. 4.6. Messaging
      1. 4.6.1. Creating and Sending an Email Message
    7. 4.7. Multimedia
      1. 4.7.1. Playing an Audio File
      2. 4.7.2. Creating a Playlist of Videos and Playing Them in a Video Widget
    8. 4.8. Publish and Subscribe
    9. 4.9. Service Framework
    10. 4.10. System Information
      1. 4.10.1. Accessing Device Information
      2. 4.10.2. Accessing System Information
    11. 4.11. Summary
    12. 4.12. Bibliography
  13. 5. Qt-Like Mobile Extensions
    1. 5.1. Utilizing Platform Features beyond Qt APIs
    2. 5.2. How to Use the Mobile Extensions in Your Project
    3. 5.3. Alarms
      1. 5.3.1. Getting a List of All Alarms
      2. 5.3.2. Creating a Workday Wakeup Alarm
      3. 5.3.3. Changing the Time of a Specific Alarm
      4. 5.3.4. Deleting an Alarm
    4. 5.4. Calendar
      1. 5.4.1. Creating a New Calendar Item
      2. 5.4.2. Deleting Calendar Entries
    5. 5.5. Camera
      1. 5.5.1. Camera Initialization
      2. 5.5.2. Using the Viewfinder Widget
      3. 5.5.3. Taking a Photo
    6. 5.6. Installer
      1. 5.6.1. Installing an Application in the Background without Notifying the User
      2. 5.6.2. Uninstalling an Application in the Background without Notifying the User
      3. 5.6.3. Getting a List of all Installed Applications in the Device
    7. 5.7. Landmarks
      1. 5.7.1. Creating a Landmark for the Current Location
      2. 5.7.2. Getting a List of All Landmarks in the Landmark Database
    8. 5.8. Profile
      1. 5.8.1. Getting the Current Active Profile
      2. 5.8.2. Setting the Current Profile to Silent
      3. 5.8.3. Setting the Ringing Volume of the General Profile to Maximum
    9. 5.9. Sensors
      1. 5.9.1. Receiving Notification of Changes in Rotation and Orientation
    10. 5.10. Telephony
      1. 5.10.1. Making a Circuit-Switched Telephone Call
      2. 5.10.2. Receiving Notification of When Phone Call Status Changes
    11. 5.11. Utils
      1. 5.11.1. Keeping the Device Backlight Turned On
      2. 5.11.2. Launching a File with the Default Viewer Application
      3. 5.11.3. Converting between QString and HBufC*
    12. 5.12. Vibra
      1. 5.12.1. Switching on the Vibration Function
  14. 6. Qt Apps and Native Symbian Extensions
    1. 6.1. Data Types and Symbian OS Class Naming Conventions
      1. 6.1.1. Descriptors
      2. 6.1.2. Arrays
    2. 6.2. Memory Management
      1. 6.2.1. Leaves and Exception Handling
      2. 6.2.2. The Cleanup Stack
      3. 6.2.3. Two-Phase Construction
      4. 6.2.4. Thin Templates
    3. 6.3. Executable Files
    4. 6.4. Platform Security
    5. 6.5. Active Objects
    6. 6.6. Error Handling
    7. 6.7. Threads
    8. 6.8. Qt for Symbian
      1. 6.8.1. Combining Qt and Native C++
      2. 6.8.2. Building Qt Applications in the Symbian Environment
      3. 6.8.3. Separating Qt and Symbian Implementations
      4. 6.8.4. Other Issues
    9. 6.9. Summary
    10. 6.10. Bibliography
  15. 7. Qt for Symbian Examples
    1. 7.1. Mobility API Examples
      1. 7.1.1. Displaying Messaging Accounts
      2. 7.1.2. Displaying Recent Messages
      3. 7.1.3. Service Framework
        1. 7.1.3.1. Creating a Service Plug-in
    2. 7.2. Qt for Symbian and Mobile Extension Examples
      1. 7.2.1. Basic Widgets Example
      2. 7.2.2. Background Worker Class
      3. 7.2.3. Bouncing Ball
      4. 7.2.4. Options Menu
      5. 7.2.5. Website Downloader
      6. 7.2.6. Stored Settings
      7. 7.2.7. FriendsApp
      8. 7.2.8. Sensor API
      9. 7.2.9. Messaging API
      10. 7.2.10. Camera API
      11. 7.2.11. Location API