際際滷

際際滷Share a Scribd company logo
Native application development with Qt Hands on development of Qt application Rahul Nimbalkar
Agenda Qt on desktop and maemo Qt Creator Developing Qt application for N900 Usage of accelerometer APIs for Qt application X86 usage for device emulator Debian packaging Deploying on N900 Links
Qt on desktop and maemo Qt油is a cross-platform application油and UI framework.  Write applications油once and deploy across desktop, mobile and embedded OS without rewriting the source code Qt uses standard油C++, but makes extensive use of the C pre-processor to enrich the language  Use of native UI-rendering APIs Meta object compiler Meta information is used to provide the signal/slot system
Qt on desktop and maemo Maemo is like any Linux distro Most of applications can be compiled to Maemo without any modifications Maemo is mobile optimized and Qt applications should be mobile optimized as well Maemo Qt4 port for adding maemo/hildon mobile optimizations to Qt
Qt Creator Qt Creator is a new cross-platform (IDE) An advanced C++ code editor Integrated油GUI layout and forms designer Project and build management tools Integrated, context-sensitive help system Visual debugger Rapid code navigation tools Supports油multiple platforms
Developing Qt application for N900 Developing Qt for device is similar to desktop application Qt Creator can be used for developing UI Signal/slots and basic coding can be done on desktop app Create device specific skeleton code Hildonized Menu for application
Accelerometer API for application MCE  Mode Control Entity Fremantle provides an accelerometer API through two interfaces: D-Bus sysfs - /sys/class/i2c-adapter/i2c-3/3-001d/coord
Accelerometers application
Class Diagram meters 束inherits損 MCE 束signal/slots損 束Dbus/callback損 CAccelerometerNotifier QMainWindow Ui::meters centralwidget: QWidget*
X86 usage for device emulator Outside scratchbox execute Xephyr油:2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb &  Create directory in scratchbox and copy desktop project to: /scratchbox/users/username/home/username/MyDocs/appname-0.1 Set up UI framework export DISPLAY=:2 af-sb-init.sh start Execute following commands qmake && make run-standalone ./appname
Debian packaging Create directory by name as appname-0.1 Edit *.pro file to add following lines target.path = /opt/maemo/usr/bin/  executable path on device INSTALLS += target  added to generate Makefile with this path desktop.files = appname.desktop desktop.path = /opt/maemo/usr/share/applications/hildon INSTALLS += desktop qmake  generate make files make  compile the source code dh_make e  [email_address]  r s Creates all the required files for debian packaging in debian directory
Debian packaging Contd Edit debian/rules Add qmake-qt4 PREFIX=/opt/maemo/usr meters.pro in Make section Rename DEST_DIR to INSTALL_ROOT Edit debian/control Add maintainer name  Add icons for application manager menu dpkg-buildpackage rfakeroot us uc Final step for creating debian package Package is created at one level up of current directory
Deploying on N900 Copy deb package to device Open Xterm on device Execute  sudo gainroot  Navigate to MyDocs dpkg i meters_0.1-1_armel.deb Launch Meters from More in main application menu
Links http://wiki.maemo.org/Packaging_a_Qt_application http://qt4.garage.maemo.org http://qt.nokia.com http://doc.trolltech.com [email_address]
Ad

Recommended

Class.devops.chapter.2.ucd
Class.devops.chapter.2.ucd
Ross Tang
Synapse india dotnet framework development or c
Synapse india dotnet framework development or c
Synapseindiappsdevelopment
Learned lessons in a real world project
Learned lessons in a real world project
Codium
Kubernetes - from sketch to production
Kubernetes - from sketch to production
Sergio Shevchenko
Docker for a .NET web developer
Docker for a .NET web developer
Maurice De Beijer [MVP]
Pluralsight Webinar: Simplify Your Project Builds with Docker
Pluralsight Webinar: Simplify Your Project Builds with Docker
Elton Stoneman
C compiler
C compiler
ABHAYNARAYAN13
Developer South Coast 2018: Modernizing .NET Apps with Docker
Developer South Coast 2018: Modernizing .NET Apps with Docker
Elton Stoneman
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Andreas Jakl
Lessons Learned from Building 100+ C++/Qt/QML Devices
Lessons Learned from Building 100+ C++/Qt/QML Devices
ICS
C++Builder XE8 Datasheet
C++Builder XE8 Datasheet
Embarcadero Technologies
Intel AppUp SDK Suite 1.2 for MeeGo
Intel AppUp SDK Suite 1.2 for MeeGo
Intel Developer Zone Community
RAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature Matrix
Embarcadero Technologies
Qt quick (qml)
Qt quick (qml)
Elena Kotina
Embarcadero RAD Studio XE8 Feature Matrix
Embarcadero RAD Studio XE8 Feature Matrix
Embarcadero Technologies
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
Johan Thelin
WIndows Embedded Compact 2013 Whats news
WIndows Embedded Compact 2013 Whats news
Mirco Vanini
Nicholas Foo
Nicholas Foo
riteshrajgupta
Nicholas Foo
Nicholas Foo
fndc
Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009
Nokia
RAD Studio XE8 Datasheet
RAD Studio XE8 Datasheet
Embarcadero Technologies
Meet qt intro
Meet qt intro
ISB Vietnam Corporation
Meet qt intro
Meet qt intro
ISBVN
Witekio Qt and Android
Witekio Qt and Android
Witekio
An Introduction To Android
An Introduction To Android
natdefreitas
Intro to gui, cross platform and qt
Intro to gui, cross platform and qt
Muhammad Sabry
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Nokia
Delphi XE7 Datasheet - The fastest way to build connected apps for Windows, O...
Delphi XE7 Datasheet - The fastest way to build connected apps for Windows, O...
Embarcadero Technologies
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays

More Related Content

Similar to Native Application Development With Qt (20)

Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Andreas Jakl
Lessons Learned from Building 100+ C++/Qt/QML Devices
Lessons Learned from Building 100+ C++/Qt/QML Devices
ICS
C++Builder XE8 Datasheet
C++Builder XE8 Datasheet
Embarcadero Technologies
Intel AppUp SDK Suite 1.2 for MeeGo
Intel AppUp SDK Suite 1.2 for MeeGo
Intel Developer Zone Community
RAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature Matrix
Embarcadero Technologies
Qt quick (qml)
Qt quick (qml)
Elena Kotina
Embarcadero RAD Studio XE8 Feature Matrix
Embarcadero RAD Studio XE8 Feature Matrix
Embarcadero Technologies
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
Johan Thelin
WIndows Embedded Compact 2013 Whats news
WIndows Embedded Compact 2013 Whats news
Mirco Vanini
Nicholas Foo
Nicholas Foo
riteshrajgupta
Nicholas Foo
Nicholas Foo
fndc
Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009
Nokia
RAD Studio XE8 Datasheet
RAD Studio XE8 Datasheet
Embarcadero Technologies
Meet qt intro
Meet qt intro
ISB Vietnam Corporation
Meet qt intro
Meet qt intro
ISBVN
Witekio Qt and Android
Witekio Qt and Android
Witekio
An Introduction To Android
An Introduction To Android
natdefreitas
Intro to gui, cross platform and qt
Intro to gui, cross platform and qt
Muhammad Sabry
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Nokia
Delphi XE7 Datasheet - The fastest way to build connected apps for Windows, O...
Delphi XE7 Datasheet - The fastest way to build connected apps for Windows, O...
Embarcadero Technologies
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Andreas Jakl
Lessons Learned from Building 100+ C++/Qt/QML Devices
Lessons Learned from Building 100+ C++/Qt/QML Devices
ICS
RAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature Matrix
Embarcadero Technologies
Embarcadero RAD Studio XE8 Feature Matrix
Embarcadero RAD Studio XE8 Feature Matrix
Embarcadero Technologies
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
Johan Thelin
WIndows Embedded Compact 2013 Whats news
WIndows Embedded Compact 2013 Whats news
Mirco Vanini
Nicholas Foo
Nicholas Foo
fndc
Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009
Nokia
Meet qt intro
Meet qt intro
ISBVN
Witekio Qt and Android
Witekio Qt and Android
Witekio
An Introduction To Android
An Introduction To Android
natdefreitas
Intro to gui, cross platform and qt
Intro to gui, cross platform and qt
Muhammad Sabry
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Nokia
Delphi XE7 Datasheet - The fastest way to build connected apps for Windows, O...
Delphi XE7 Datasheet - The fastest way to build connected apps for Windows, O...
Embarcadero Technologies

Recently uploaded (20)

"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
Ad

Native Application Development With Qt

  • 1. Native application development with Qt Hands on development of Qt application Rahul Nimbalkar
  • 2. Agenda Qt on desktop and maemo Qt Creator Developing Qt application for N900 Usage of accelerometer APIs for Qt application X86 usage for device emulator Debian packaging Deploying on N900 Links
  • 3. Qt on desktop and maemo Qt油is a cross-platform application油and UI framework. Write applications油once and deploy across desktop, mobile and embedded OS without rewriting the source code Qt uses standard油C++, but makes extensive use of the C pre-processor to enrich the language Use of native UI-rendering APIs Meta object compiler Meta information is used to provide the signal/slot system
  • 4. Qt on desktop and maemo Maemo is like any Linux distro Most of applications can be compiled to Maemo without any modifications Maemo is mobile optimized and Qt applications should be mobile optimized as well Maemo Qt4 port for adding maemo/hildon mobile optimizations to Qt
  • 5. Qt Creator Qt Creator is a new cross-platform (IDE) An advanced C++ code editor Integrated油GUI layout and forms designer Project and build management tools Integrated, context-sensitive help system Visual debugger Rapid code navigation tools Supports油multiple platforms
  • 6. Developing Qt application for N900 Developing Qt for device is similar to desktop application Qt Creator can be used for developing UI Signal/slots and basic coding can be done on desktop app Create device specific skeleton code Hildonized Menu for application
  • 7. Accelerometer API for application MCE Mode Control Entity Fremantle provides an accelerometer API through two interfaces: D-Bus sysfs - /sys/class/i2c-adapter/i2c-3/3-001d/coord
  • 9. Class Diagram meters 束inherits損 MCE 束signal/slots損 束Dbus/callback損 CAccelerometerNotifier QMainWindow Ui::meters centralwidget: QWidget*
  • 10. X86 usage for device emulator Outside scratchbox execute Xephyr油:2 -host-cursor -screen 800x480x16 -dpi 96 -ac -kb & Create directory in scratchbox and copy desktop project to: /scratchbox/users/username/home/username/MyDocs/appname-0.1 Set up UI framework export DISPLAY=:2 af-sb-init.sh start Execute following commands qmake && make run-standalone ./appname
  • 11. Debian packaging Create directory by name as appname-0.1 Edit *.pro file to add following lines target.path = /opt/maemo/usr/bin/ executable path on device INSTALLS += target added to generate Makefile with this path desktop.files = appname.desktop desktop.path = /opt/maemo/usr/share/applications/hildon INSTALLS += desktop qmake generate make files make compile the source code dh_make e [email_address] r s Creates all the required files for debian packaging in debian directory
  • 12. Debian packaging Contd Edit debian/rules Add qmake-qt4 PREFIX=/opt/maemo/usr meters.pro in Make section Rename DEST_DIR to INSTALL_ROOT Edit debian/control Add maintainer name Add icons for application manager menu dpkg-buildpackage rfakeroot us uc Final step for creating debian package Package is created at one level up of current directory
  • 13. Deploying on N900 Copy deb package to device Open Xterm on device Execute sudo gainroot Navigate to MyDocs dpkg i meters_0.1-1_armel.deb Launch Meters from More in main application menu
  • 14. Links http://wiki.maemo.org/Packaging_a_Qt_application http://qt4.garage.maemo.org http://qt.nokia.com http://doc.trolltech.com [email_address]