SlideShare une entreprise Scribd logo
1  sur  62
Télécharger pour lire hors ligne
Mobile Application
Development
with Qt for Symbian
Visit:

bit.ly/qtsymbian
               ...get Qt for your phone




   Qt for Symbian:  bit.ly/qtsymbian
About Me


Jason Barron




   Started              Began in                   Switched to
  July, 2005            Support                    Development




               Qt for Symbian:  bit.ly/qtsymbian                 3
About Me


Alessandro Portale




  09/02 – 01/07        02/07 – 03/08                     04/08 – today
Color management          Qt tools                     Qt port to Symbian




                   Qt for Symbian:  bit.ly/qtsymbian
Goal


• Why use Qt for Symbian?

• Learn what you need to get started.

• Learn how to make great apps on Symbian.




                 Qt for Symbian:  bit.ly/qtsymbian
Agenda


• Getting Started

• Application Development

• UI Types

• New “Mobile-esque” Features in 4.6

• Advanced integration


                    Qt for Symbian:  bit.ly/qtsymbian
Why use Qt for Symbian?



1. Symbian is a relevant mobile platform.

2. Qt is an easy way to access Symbian.

    3. Many of you already know Qt!




            Qt for Symbian:  bit.ly/qtsymbian
The Symbian Landscape

                                  Today



S60 3.1, 3.2          S60 5.0




                      Symbian^1             S^2        S^3   S^4




                   Qt for Symbian:  bit.ly/qtsymbian
The Developer’s Shopping List


              SDK

              IDE

              Open C plugin (POSIX)

              Qt



       Qt for Symbian:  bit.ly/qtsymbian
Free      Available From          Binaries         Can be used to compile



                                                               Qt           Apps



WINSCW      Yes        Carbide.c++             Win32*          Yes           Yes



GCC-E       Yes          S60 SDK                ARM            No**          Yes
                      (CodeSourcery)



RVCT         No          ARM Ltd.               ARM            Yes           Yes


* Win32 binaries run in the Symbian Emulator

** Technically can compile Qt, but libraries containing WSD will not run

                                 Compilers
                           Qt for Symbian:  bit.ly/qtsymbian
Agenda


• Getting Started

• Application Development

• UI types

• New “Mobile-esque” Features in 4.6

• Advanced integration


                    Qt for Symbian:  bit.ly/qtsymbian
Demo




Qt for Symbian:  bit.ly/qtsymbian
Application Development – From Scratch


•   Carbide's Qt project wizard
•   Editing the Ui Form
•   show(), showMaximized() or
    showFullScreen()?
•   Running the application in the emulator
•   Running the application on the phone




                 Qt for Symbian:  bit.ly/qtsymbian
Demonstration




Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt project wizard




     Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt project wizard




     Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt project wizard




     Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt project wizard




     Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt project wizard




     Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt project wizard




     Qt for Symbian:  bit.ly/qtsymbian
Editing the Ui Form




  Qt for Symbian:  bit.ly/qtsymbian
Editing the Ui Form




  Qt for Symbian:  bit.ly/qtsymbian
Editing the Ui Form




  Qt for Symbian:  bit.ly/qtsymbian
Editing the Ui Form




  Qt for Symbian:  bit.ly/qtsymbian
Editing the Ui Form




  Qt for Symbian:  bit.ly/qtsymbian
Editing the Ui Form




  Qt for Symbian:  bit.ly/qtsymbian
Adjusting the show() call




    Qt for Symbian:  bit.ly/qtsymbian
Adjusting the show() call




    Qt for Symbian:  bit.ly/qtsymbian
Running the application in the emulator




           Qt for Symbian:  bit.ly/qtsymbian
Running the application in the emulator




           Qt for Symbian:  bit.ly/qtsymbian
Running the application in the emulator




           Qt for Symbian:  bit.ly/qtsymbian
Running the application in the emulator




           Qt for Symbian:  bit.ly/qtsymbian
Building and deploying for the device




          Qt for Symbian:  bit.ly/qtsymbian
Command Line


C:qt...analogclock> qmake

C:qt...analogclock> make debug-winscw
C:qt...analogclock> make release-gcce
C:qt...analogclock> make release-armv5

C:qt...analogclock> make sis



                  Qt for Symbian:  bit.ly/qtsymbian
Port an existing application


•   Original application on the Desktop

•   Carbide's Qt .pro file import
•   Running the application in the emulator
•   Desktop Ui vs. Mobile Ui




                 Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt .pro file import




      Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt .pro file import




      Qt for Symbian:  bit.ly/qtsymbian
Carbide's Qt .pro file import




      Qt for Symbian:  bit.ly/qtsymbian
Running the application in the emulator




           Qt for Symbian:  bit.ly/qtsymbian
Running the application in the emulator




           Qt for Symbian:  bit.ly/qtsymbian
Desktop Ui vs. Mobile Ui




                                        Successful port?


    Qt for Symbian:  bit.ly/qtsymbian
Desktop Ui vs. Mobile Ui




                                        Mobile friendly Ui


    Qt for Symbian:  bit.ly/qtsymbian
Desktop Ui vs. Mobile Ui




   Including different Ui headers




    Qt for Symbian:  bit.ly/qtsymbian
Desktop Ui vs. Mobile Ui




Instantiating and showing different Uis



      Qt for Symbian:  bit.ly/qtsymbian
Desktop Ui vs. Mobile Ui




 AppController knows the view as QObject
 that emits colorChanged()

      Qt for Symbian:  bit.ly/qtsymbian
Desktop Ui vs. Mobile Ui




 Both Uis emit a colorChanged() signal



      Qt for Symbian:  bit.ly/qtsymbian
Agenda


• Getting Started

• Application Development

• UI Types

• New “Mobile-esque” Features in 4.6

• Advanced integration


                    Qt for Symbian:  bit.ly/qtsymbian
UI Types




Qt for Symbian:  bit.ly/qtsymbian
Agenda

• Getting Started

• Application Development

• UI Types

• New “Mobile-esque” Features in 4.6

• Advanced integration


                    Qt for Symbian:  bit.ly/qtsymbian
qmake Keywords


• MMP_RULES                           • DEPLOYMENT
• BLD_INF_RULES                       • ICON

• TARGET                              • QMAKE_CXXFLAGS
  – .UID3                                    – .ARMCC
  – .EPOCHEAPSIZE                            – .WINSCW
  – .CAPABILITY




                    Qt for Symbian:  bit.ly/qtsymbian
Input Method Hints




… QWidget::inputMethodHints() const;

void QWidget::setInputMethodHints(…);



                 Qt for Symbian:  bit.ly/qtsymbian
Input Method Hints


• Change Behavior:                  • Restrict Input:
  –   Qt::ImhHiddenText                   –   Qt::ImhDigitsOnly
  –   Qt::ImhNoAutoUppercase              –   Qt::ImhFormattedNumbersOnly
  –   Qt::ImhPreferNumbers                –   Qt::ImhUppercaseOnly
  –   Qt::ImhPreferUppercase              –   Qt::ImhLowercaseOnly
  –   Qt::ImhPreferLowercase              –   Qt::ImhDialableCharactersOnly
  –   Qt::ImhNoPredictiveText             –   Qt::ImhEmailCharactersOnly


                                    • Masks:
                                          – Qt::ImhExclusiveInputMask




                      Qt for Symbian:  bit.ly/qtsymbian
Soft keys

QAction::setSoftKeyRole(…);
…QAction::softKeyRole() const;


enum SoftKeyRole {
QAction::NoSoftKey, //(default)
QAction::PositiveSoftKey,
QAction::NegativeSoftKey,
QAction::SelectSoftKey,
}



                      Qt for Symbian:  bit.ly/qtsymbian
Navigation Modes

void QApplication::setNavigationMode(...);
... QApplication::navigationMode();

enum NavigationMode {
    NavigationModeNone,
    NavigationModeKeypadTabOrder,
    NavigationModeKeypadDirectional,
    NavigationModeCursorAuto,
    NavigationModeCursorForceVisible
 };




                      Qt for Symbian:  bit.ly/qtsymbian
Exceptions

    What happens if ‘new’ on line 4 throws std::bad_alloc?

MyWidget::MyWidget(QWidget *parent) : QDialog(parent),
    label(new QLabel("Name?", this)),
    edit(new QLineEdit(this)),
    button(new QPushButton("Ok"))
{
     setLayout(new QVBoxLayout);
     layout()->addWidget(label);
     layout()->addWidget(edit);
     layout()->addWidget(button);
}




                       Qt for Symbian:  bit.ly/qtsymbian
QScopedPointer

  Deletes it’s object when the scope terminates.
class MyWidget: public QDialog
{
    Q_OBJECT

public:
    MyWidget(QWidget *parent = 0);
private:
#ifdef USE_SCOPED_POINTER
    QScopedPointer<QLabel> label;
    QScopedPointer<QLineEdit> edit;
    QScopedPointer<QPushButton> button;
#else
    QLabel *label;
    QLineEdit *edit;
    QPushButton *button;
#endif
};



                        Qt for Symbian:  bit.ly/qtsymbian
Agenda


• Getting Started

• Application Development

• UI Types

• New “Mobile-esque” Features in 4.6

• Advanced integration


                    Qt for Symbian:  bit.ly/qtsymbian
Event Dispatcher – Active Scheduler


• Active objects can be used as normal


                 ActiveScheduler



                            Qt




                 Qt for Symbian:  bit.ly/qtsymbian
Handling Symbian Leaves


• QT_TRAP_THROWING
  – Converts leaves to exceptions
• QT_TRYCATCH_ERROR
  – Converts exceptions to errors
• QT_TRYCATCH_LEAVING
  – Converts exceptions to leaves




                   Qt for Symbian:  bit.ly/qtsymbian
RWindow, CCoeControl and QWidget


• QWidget::winId() – Returns a CCoeControl

• Always window owning:

CCoeControl *c = widget->effectiveWinId();
RWindow *rw =
  static_cast<RWindow*>(c->DrawableWindow());




                  Qt for Symbian:  bit.ly/qtsymbian
Thank You!
    Questions?




Qt for Symbian:  bit.ly/qtsymbian
Reference



• Download an SDK from:
   – Forum Nokia (http://forum.nokia.com)

   – Samsung Mobile Innovator (http://innovator.samsungmobile.com)

   – Symbian Foundation (http://developer.symbian.com)




                        Qt for Symbian:  bit.ly/qtsymbian            62

Contenu connexe

En vedette

Designing for Multiple Mobile Platforms
Designing for Multiple Mobile PlatformsDesigning for Multiple Mobile Platforms
Designing for Multiple Mobile PlatformsRobert Douglas
 
My Valentine Gift - YOU Decide
My Valentine Gift - YOU DecideMy Valentine Gift - YOU Decide
My Valentine Gift - YOU DecideSizzlynRose
 
Sample of instructions
Sample of instructionsSample of instructions
Sample of instructionsDavid Sommer
 
Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)John Collins
 
Open Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital BroadcastingOpen Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital BroadcastingFrancois Lefebvre
 
My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3David Sommer
 
The ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThe ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThoughtWorks
 
Sample email submission
Sample email submissionSample email submission
Sample email submissionDavid Sommer
 
2008 Fourth Quarter Real Estate Commentary
2008 Fourth Quarter Real Estate Commentary2008 Fourth Quarter Real Estate Commentary
2008 Fourth Quarter Real Estate Commentaryalghanim
 
Putting Out Fires with Content Strategy (InfoDevDC meetup)
Putting Out Fires with Content Strategy (InfoDevDC meetup)Putting Out Fires with Content Strategy (InfoDevDC meetup)
Putting Out Fires with Content Strategy (InfoDevDC meetup)John Collins
 
Stc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsStc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsDavid Sommer
 
Linguistic Potluck: Crowdsourcing localization with Rails
Linguistic Potluck: Crowdsourcing localization with RailsLinguistic Potluck: Crowdsourcing localization with Rails
Linguistic Potluck: Crowdsourcing localization with RailsHeatherRivers
 
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)John Collins
 
Pycon 2012 Apache Cassandra
Pycon 2012 Apache CassandraPycon 2012 Apache Cassandra
Pycon 2012 Apache Cassandrajeremiahdjordan
 
Building a Localization Kit
Building a Localization KitBuilding a Localization Kit
Building a Localization KitLuigi Muzii
 
Tricks & challenges developing a large Django application
Tricks & challenges developing a large Django applicationTricks & challenges developing a large Django application
Tricks & challenges developing a large Django applicationSimon Willison
 

En vedette (19)

Designing for Multiple Mobile Platforms
Designing for Multiple Mobile PlatformsDesigning for Multiple Mobile Platforms
Designing for Multiple Mobile Platforms
 
My Valentine Gift - YOU Decide
My Valentine Gift - YOU DecideMy Valentine Gift - YOU Decide
My Valentine Gift - YOU Decide
 
Sample of instructions
Sample of instructionsSample of instructions
Sample of instructions
 
Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)
 
Shrunken Head
 Shrunken Head  Shrunken Head
Shrunken Head
 
Open Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital BroadcastingOpen Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital Broadcasting
 
Glossary
GlossaryGlossary
Glossary
 
My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3
 
The ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj KumarThe ruby on rails i18n core api-Neeraj Kumar
The ruby on rails i18n core api-Neeraj Kumar
 
Silmeyiniz
SilmeyinizSilmeyiniz
Silmeyiniz
 
Sample email submission
Sample email submissionSample email submission
Sample email submission
 
2008 Fourth Quarter Real Estate Commentary
2008 Fourth Quarter Real Estate Commentary2008 Fourth Quarter Real Estate Commentary
2008 Fourth Quarter Real Estate Commentary
 
Putting Out Fires with Content Strategy (InfoDevDC meetup)
Putting Out Fires with Content Strategy (InfoDevDC meetup)Putting Out Fires with Content Strategy (InfoDevDC meetup)
Putting Out Fires with Content Strategy (InfoDevDC meetup)
 
Stc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsStc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kits
 
Linguistic Potluck: Crowdsourcing localization with Rails
Linguistic Potluck: Crowdsourcing localization with RailsLinguistic Potluck: Crowdsourcing localization with Rails
Linguistic Potluck: Crowdsourcing localization with Rails
 
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
 
Pycon 2012 Apache Cassandra
Pycon 2012 Apache CassandraPycon 2012 Apache Cassandra
Pycon 2012 Apache Cassandra
 
Building a Localization Kit
Building a Localization KitBuilding a Localization Kit
Building a Localization Kit
 
Tricks & challenges developing a large Django application
Tricks & challenges developing a large Django applicationTricks & challenges developing a large Django application
Tricks & challenges developing a large Django application
 

Similaire à Mobile Development with Qt for Symbian

Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009Nokia
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Nokia
 
Qt on symbian_3_v4
Qt on symbian_3_v4Qt on symbian_3_v4
Qt on symbian_3_v4Daniel Rocha
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbianaccount inactive
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia
 
Architecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and BeyondArchitecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and BeyondSandro Andrade
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonLeon Stigter
 
Developments in the Qt WebKit Integration
Developments in the Qt WebKit IntegrationDevelopments in the Qt WebKit Integration
Developments in the Qt WebKit Integrationaccount inactive
 
Vancouver mulesoft meetup_september_2020
Vancouver mulesoft meetup_september_2020Vancouver mulesoft meetup_september_2020
Vancouver mulesoft meetup_september_2020Vikalp Bhalia
 
Targeting Android with Qt
Targeting Android with QtTargeting Android with Qt
Targeting Android with QtEspen Riskedal
 
用 IBDesignable 作 UI
用 IBDesignable 作 UI用 IBDesignable 作 UI
用 IBDesignable 作 UITsungyu Yu
 
Qt for Python
Qt for PythonQt for Python
Qt for PythonICS
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Qualcomm Developer Network
 
Advanced Visualization with OpenGL in Oil & Gas
Advanced Visualization with OpenGL in Oil & GasAdvanced Visualization with OpenGL in Oil & Gas
Advanced Visualization with OpenGL in Oil & Gasaccount inactive
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Johan Thelin
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Johan Thelin
 
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Nokia
 

Similaire à Mobile Development with Qt for Symbian (20)

Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009
 
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
 
Qt on symbian_3_v4
Qt on symbian_3_v4Qt on symbian_3_v4
Qt on symbian_3_v4
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbian
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
 
Architecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and BeyondArchitecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
Architecting Qt Mobile Applications: Frameworks, Code Generators and Beyond
 
Symbian OS
Symbian OSSymbian OS
Symbian OS
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and Tekton
 
Qt quick (qml)
Qt quick (qml)Qt quick (qml)
Qt quick (qml)
 
Developments in the Qt WebKit Integration
Developments in the Qt WebKit IntegrationDevelopments in the Qt WebKit Integration
Developments in the Qt WebKit Integration
 
Vancouver mulesoft meetup_september_2020
Vancouver mulesoft meetup_september_2020Vancouver mulesoft meetup_september_2020
Vancouver mulesoft meetup_september_2020
 
Targeting Android with Qt
Targeting Android with QtTargeting Android with Qt
Targeting Android with Qt
 
用 IBDesignable 作 UI
用 IBDesignable 作 UI用 IBDesignable 作 UI
用 IBDesignable 作 UI
 
Qt for Python
Qt for PythonQt for Python
Qt for Python
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
 
Advanced Visualization with OpenGL in Oil & Gas
Advanced Visualization with OpenGL in Oil & GasAdvanced Visualization with OpenGL in Oil & Gas
Advanced Visualization with OpenGL in Oil & Gas
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017
 
What's Rio
What's RioWhat's Rio
What's Rio
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
 
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
 

Plus de account inactive

KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phonesaccount inactive
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Applicationaccount inactive
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics Viewaccount inactive
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integrationaccount inactive
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systemsaccount inactive
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CEaccount inactive
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applicationsaccount inactive
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Frameworkaccount inactive
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Nativeaccount inactive
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsaccount inactive
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qtaccount inactive
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)account inactive
 
Copy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with QtCopy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with Qtaccount inactive
 
The Next Generation Qt Item Views
The Next Generation Qt Item ViewsThe Next Generation Qt Item Views
The Next Generation Qt Item Viewsaccount inactive
 

Plus de account inactive (20)

Meet Qt
Meet QtMeet Qt
Meet Qt
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
 
The Future of Qt Widgets
The Future of Qt WidgetsThe Future of Qt Widgets
The Future of Qt Widgets
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Application
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics View
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integration
 
Qt Kwan-Do
Qt Kwan-DoQt Kwan-Do
Qt Kwan-Do
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systems
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applications
 
Qt Creator Bootcamp
Qt Creator BootcampQt Creator Bootcamp
Qt Creator Bootcamp
 
Qt Widget In-Depth
Qt Widget In-DepthQt Widget In-Depth
Qt Widget In-Depth
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Native
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIs
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qt
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
 
The Mobility Project
The Mobility ProjectThe Mobility Project
The Mobility Project
 
Copy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with QtCopy Your Favourite Nokia App with Qt
Copy Your Favourite Nokia App with Qt
 
The Next Generation Qt Item Views
The Next Generation Qt Item ViewsThe Next Generation Qt Item Views
The Next Generation Qt Item Views
 

Dernier

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Dernier (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Mobile Development with Qt for Symbian

  • 2. Visit: bit.ly/qtsymbian ...get Qt for your phone Qt for Symbian:  bit.ly/qtsymbian
  • 3. About Me Jason Barron Started Began in Switched to July, 2005 Support Development Qt for Symbian:  bit.ly/qtsymbian 3
  • 4. About Me Alessandro Portale 09/02 – 01/07 02/07 – 03/08 04/08 – today Color management Qt tools Qt port to Symbian Qt for Symbian:  bit.ly/qtsymbian
  • 5. Goal • Why use Qt for Symbian? • Learn what you need to get started. • Learn how to make great apps on Symbian. Qt for Symbian:  bit.ly/qtsymbian
  • 6. Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
  • 7. Why use Qt for Symbian? 1. Symbian is a relevant mobile platform. 2. Qt is an easy way to access Symbian. 3. Many of you already know Qt! Qt for Symbian:  bit.ly/qtsymbian
  • 8. The Symbian Landscape Today S60 3.1, 3.2 S60 5.0 Symbian^1 S^2 S^3 S^4 Qt for Symbian:  bit.ly/qtsymbian
  • 9. The Developer’s Shopping List SDK IDE Open C plugin (POSIX) Qt Qt for Symbian:  bit.ly/qtsymbian
  • 10. Free Available From Binaries Can be used to compile Qt Apps WINSCW Yes Carbide.c++ Win32* Yes Yes GCC-E Yes S60 SDK ARM No** Yes (CodeSourcery) RVCT No ARM Ltd. ARM Yes Yes * Win32 binaries run in the Symbian Emulator ** Technically can compile Qt, but libraries containing WSD will not run Compilers Qt for Symbian:  bit.ly/qtsymbian
  • 11. Agenda • Getting Started • Application Development • UI types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
  • 13. Application Development – From Scratch • Carbide's Qt project wizard • Editing the Ui Form • show(), showMaximized() or showFullScreen()? • Running the application in the emulator • Running the application on the phone Qt for Symbian:  bit.ly/qtsymbian
  • 15. Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
  • 16. Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
  • 17. Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
  • 18. Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
  • 19. Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
  • 20. Carbide's Qt project wizard Qt for Symbian:  bit.ly/qtsymbian
  • 21. Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
  • 22. Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
  • 23. Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
  • 24. Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
  • 25. Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
  • 26. Editing the Ui Form Qt for Symbian:  bit.ly/qtsymbian
  • 27. Adjusting the show() call Qt for Symbian:  bit.ly/qtsymbian
  • 28. Adjusting the show() call Qt for Symbian:  bit.ly/qtsymbian
  • 29. Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
  • 30. Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
  • 31. Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
  • 32. Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
  • 33. Building and deploying for the device Qt for Symbian:  bit.ly/qtsymbian
  • 34. Command Line C:qt...analogclock> qmake C:qt...analogclock> make debug-winscw C:qt...analogclock> make release-gcce C:qt...analogclock> make release-armv5 C:qt...analogclock> make sis Qt for Symbian:  bit.ly/qtsymbian
  • 35. Port an existing application • Original application on the Desktop • Carbide's Qt .pro file import • Running the application in the emulator • Desktop Ui vs. Mobile Ui Qt for Symbian:  bit.ly/qtsymbian
  • 36. Carbide's Qt .pro file import Qt for Symbian:  bit.ly/qtsymbian
  • 37. Carbide's Qt .pro file import Qt for Symbian:  bit.ly/qtsymbian
  • 38. Carbide's Qt .pro file import Qt for Symbian:  bit.ly/qtsymbian
  • 39. Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
  • 40. Running the application in the emulator Qt for Symbian:  bit.ly/qtsymbian
  • 41. Desktop Ui vs. Mobile Ui Successful port? Qt for Symbian:  bit.ly/qtsymbian
  • 42. Desktop Ui vs. Mobile Ui Mobile friendly Ui Qt for Symbian:  bit.ly/qtsymbian
  • 43. Desktop Ui vs. Mobile Ui Including different Ui headers Qt for Symbian:  bit.ly/qtsymbian
  • 44. Desktop Ui vs. Mobile Ui Instantiating and showing different Uis Qt for Symbian:  bit.ly/qtsymbian
  • 45. Desktop Ui vs. Mobile Ui AppController knows the view as QObject that emits colorChanged() Qt for Symbian:  bit.ly/qtsymbian
  • 46. Desktop Ui vs. Mobile Ui Both Uis emit a colorChanged() signal Qt for Symbian:  bit.ly/qtsymbian
  • 47. Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
  • 49. Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
  • 50. qmake Keywords • MMP_RULES • DEPLOYMENT • BLD_INF_RULES • ICON • TARGET • QMAKE_CXXFLAGS – .UID3 – .ARMCC – .EPOCHEAPSIZE – .WINSCW – .CAPABILITY Qt for Symbian:  bit.ly/qtsymbian
  • 51. Input Method Hints … QWidget::inputMethodHints() const; void QWidget::setInputMethodHints(…); Qt for Symbian:  bit.ly/qtsymbian
  • 52. Input Method Hints • Change Behavior: • Restrict Input: – Qt::ImhHiddenText – Qt::ImhDigitsOnly – Qt::ImhNoAutoUppercase – Qt::ImhFormattedNumbersOnly – Qt::ImhPreferNumbers – Qt::ImhUppercaseOnly – Qt::ImhPreferUppercase – Qt::ImhLowercaseOnly – Qt::ImhPreferLowercase – Qt::ImhDialableCharactersOnly – Qt::ImhNoPredictiveText – Qt::ImhEmailCharactersOnly • Masks: – Qt::ImhExclusiveInputMask Qt for Symbian:  bit.ly/qtsymbian
  • 53. Soft keys QAction::setSoftKeyRole(…); …QAction::softKeyRole() const; enum SoftKeyRole { QAction::NoSoftKey, //(default) QAction::PositiveSoftKey, QAction::NegativeSoftKey, QAction::SelectSoftKey, } Qt for Symbian:  bit.ly/qtsymbian
  • 54. Navigation Modes void QApplication::setNavigationMode(...); ... QApplication::navigationMode(); enum NavigationMode { NavigationModeNone, NavigationModeKeypadTabOrder, NavigationModeKeypadDirectional, NavigationModeCursorAuto, NavigationModeCursorForceVisible }; Qt for Symbian:  bit.ly/qtsymbian
  • 55. Exceptions What happens if ‘new’ on line 4 throws std::bad_alloc? MyWidget::MyWidget(QWidget *parent) : QDialog(parent), label(new QLabel("Name?", this)), edit(new QLineEdit(this)), button(new QPushButton("Ok")) { setLayout(new QVBoxLayout); layout()->addWidget(label); layout()->addWidget(edit); layout()->addWidget(button); } Qt for Symbian:  bit.ly/qtsymbian
  • 56. QScopedPointer Deletes it’s object when the scope terminates. class MyWidget: public QDialog { Q_OBJECT public: MyWidget(QWidget *parent = 0); private: #ifdef USE_SCOPED_POINTER QScopedPointer<QLabel> label; QScopedPointer<QLineEdit> edit; QScopedPointer<QPushButton> button; #else QLabel *label; QLineEdit *edit; QPushButton *button; #endif }; Qt for Symbian:  bit.ly/qtsymbian
  • 57. Agenda • Getting Started • Application Development • UI Types • New “Mobile-esque” Features in 4.6 • Advanced integration Qt for Symbian:  bit.ly/qtsymbian
  • 58. Event Dispatcher – Active Scheduler • Active objects can be used as normal ActiveScheduler Qt Qt for Symbian:  bit.ly/qtsymbian
  • 59. Handling Symbian Leaves • QT_TRAP_THROWING – Converts leaves to exceptions • QT_TRYCATCH_ERROR – Converts exceptions to errors • QT_TRYCATCH_LEAVING – Converts exceptions to leaves Qt for Symbian:  bit.ly/qtsymbian
  • 60. RWindow, CCoeControl and QWidget • QWidget::winId() – Returns a CCoeControl • Always window owning: CCoeControl *c = widget->effectiveWinId(); RWindow *rw = static_cast<RWindow*>(c->DrawableWindow()); Qt for Symbian:  bit.ly/qtsymbian
  • 61. Thank You! Questions? Qt for Symbian:  bit.ly/qtsymbian
  • 62. Reference • Download an SDK from: – Forum Nokia (http://forum.nokia.com) – Samsung Mobile Innovator (http://innovator.samsungmobile.com) – Symbian Foundation (http://developer.symbian.com) Qt for Symbian:  bit.ly/qtsymbian 62