Qt Embedded Johan Thelin / Bitsim
Biografi Använt Qt sedan år 2000. Flertal kundprojekt – både integration av Qt och slutanvändarapplikationer. Flertal semi...
Var är Qt? “ Ett ramverk för att skapa  grafiska användargränssnitt. ”
Var är Qt? “ Ett ramverk för att skapa  grafiska användargränssnitt. ” QtGui
Var är Qt? “ Ett ramverk för att skapa  grafiska användargränssnitt. ” QtGui QtCore QtNetwork QtSql QtXml QtWebkit QtScrip...
Varför Qt? <ul><li>Riktigt, kompilerat, språk: C++ (och Java...)
Introspektion.
Förenklad hantering av dynamiskt minne.
Signaler och slotar. </li></ul><ul><li>Ett API att förälska sig i...
...och en lika underbar dokumentation! </li></ul>
Demo på fyra slides!
En klass #ifndef MYCLASS_H #define MYCLASS_H #include <QObject> class MyClass : public QObject { Q_OBJECT public: MyClass(...
Ett program #include <QApplication> #include <QDial> #include <QLabel> #include &quot;myclass.h&quot; MyClass::MyClass( in...
Under huven <ul><li>QMake hanterar detta för din plattform! </li></ul>*.cpp objektfiler binär *.h kompileras länkas inklud...
Resultatet En QDial  som automatiskt uppdaterar en QLabel  , men med offset 42 – tillagt av MyClass-objektet. <ul><li>MyCl...
connect är dynamisk, kopplingen sker run-time.
Vi får återanvändbara komponenter! </li></ul>
Vad är Qt Embedded? Code less, create more,  deploy everywhere .
Vad är Qt Embedded? Code less, create more,  deploy everywhere . Qt är ett API. Samma kod kan byggas för samtliga plattfor...
Embedded Qt Qt for Windows CE Qt for S60 Qt for Embedded Linux
Varför Qt Embedded? <ul><li>Verktyg </li></ul><ul><li>Modulariserat </li></ul><ul><li>Anpassningsbart </li></ul>
Varför Qt Embedded? Verktyg
Verktyg - QtCreator
Verktyg - QtCreator
Verktyg - QtCreator
Verktyg -  QtCreator
Verktyg - QVFb Qt Virtual Framebuffer, emulerar: <ul><ul><li>Skärmupplösning
Bitdjup
Touch
Begränsat antal knappar </li></ul></ul>
Verktyg - QVFb
Verktyg - QVFb
Varför Qt Embedded? Modulariserat
Upcoming SlideShare
Loading in …5
×

Introduction to Qt Embedded

1,675 views

Published on

An introduction to embedded Qt, in Swedish.

Published in: Devices & Hardware
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,675
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction to Qt Embedded

  1. 1. Qt Embedded Johan Thelin / Bitsim
  2. 2. Biografi Använt Qt sedan år 2000. Flertal kundprojekt – både integration av Qt och slutanvändarapplikationer. Flertal seminarier. Artiklar för flera aktörer Trolltech, ICS, DMz, nätet. Boken FoQD ISBN: 1-59059-831-8
  3. 3. Var är Qt? “ Ett ramverk för att skapa grafiska användargränssnitt. ”
  4. 4. Var är Qt? “ Ett ramverk för att skapa grafiska användargränssnitt. ” QtGui
  5. 5. Var är Qt? “ Ett ramverk för att skapa grafiska användargränssnitt. ” QtGui QtCore QtNetwork QtSql QtXml QtWebkit QtScript Phonon QtDBus ...
  6. 6. Varför Qt? <ul><li>Riktigt, kompilerat, språk: C++ (och Java...)
  7. 7. Introspektion.
  8. 8. Förenklad hantering av dynamiskt minne.
  9. 9. Signaler och slotar. </li></ul><ul><li>Ett API att förälska sig i...
  10. 10. ...och en lika underbar dokumentation! </li></ul>
  11. 11. Demo på fyra slides!
  12. 12. En klass #ifndef MYCLASS_H #define MYCLASS_H #include <QObject> class MyClass : public QObject { Q_OBJECT public: MyClass( int offset, QObject *parent=0 ); public slots: void setValue( int v ); signals: void valueChanged( int ); private: int m_offset; }; #endif // MYCLASS_H
  13. 13. Ett program #include <QApplication> #include <QDial> #include <QLabel> #include &quot;myclass.h&quot; MyClass::MyClass( int offset, QObject *parent ) : QObject(parent), m_offset(offset) {} void MyClass::setValue( int v ) { emit valueChanged( v+m_offset ); } int main( int argc, char **argv ) { QApplication app( argc, argv ); QDial d; QLabel l; MyClass c(42); QObject::connect( &d, SIGNAL(valueChanged(int)), &c, SLOT(setValue(int)) ); QObject::connect( &c, SIGNAL(valueChanged(int)), &l, SLOT(setNum(int)) ); d.show(); l.show(); return app.exec(); }
  14. 14. Under huven <ul><li>QMake hanterar detta för din plattform! </li></ul>*.cpp objektfiler binär *.h kompileras länkas inkluderas moc_*.cpp *.ui *.qrc uic rcc moc kompileras
  15. 15. Resultatet En QDial som automatiskt uppdaterar en QLabel , men med offset 42 – tillagt av MyClass-objektet. <ul><li>MyClass känner varken till QDial eller QLabel.
  16. 16. connect är dynamisk, kopplingen sker run-time.
  17. 17. Vi får återanvändbara komponenter! </li></ul>
  18. 18. Vad är Qt Embedded? Code less, create more, deploy everywhere .
  19. 19. Vad är Qt Embedded? Code less, create more, deploy everywhere . Qt är ett API. Samma kod kan byggas för samtliga plattformar: Windows, Mac OS X, *nix (X11), Linux + framebuffer, Windows CE, S60
  20. 20. Embedded Qt Qt for Windows CE Qt for S60 Qt for Embedded Linux
  21. 21. Varför Qt Embedded? <ul><li>Verktyg </li></ul><ul><li>Modulariserat </li></ul><ul><li>Anpassningsbart </li></ul>
  22. 22. Varför Qt Embedded? Verktyg
  23. 23. Verktyg - QtCreator
  24. 24. Verktyg - QtCreator
  25. 25. Verktyg - QtCreator
  26. 26. Verktyg - QtCreator
  27. 27. Verktyg - QVFb Qt Virtual Framebuffer, emulerar: <ul><ul><li>Skärmupplösning
  28. 28. Bitdjup
  29. 29. Touch
  30. 30. Begränsat antal knappar </li></ul></ul>
  31. 31. Verktyg - QVFb
  32. 32. Verktyg - QVFb
  33. 33. Varför Qt Embedded? Modulariserat
  34. 34. Modulariserat <ul><li>Qt består av ett antal oberoende moduler </li></ul>
  35. 35. Modulariserat <ul><li>Man kan även välja enskilda klasser var för sig. </li></ul>
  36. 36. Varför Qt Embedded? Anpassningsbart
  37. 37. Anpassningsbart <ul><li>Qt hanterar ett antal saker som plug-ins. </li><ul><li>Accessability
  38. 38. Ikonhantering
  39. 39. Bildformat
  40. 40. Databasdrivare
  41. 41. Text codecs
  42. 42. Pekarinput
  43. 43. Tangentbordsinput
  44. 44. Skärmoutput
  45. 45. Utseende </li></ul></ul>
  46. 46. Anpassningsbart <ul><li>Man kan omdefiniera utseendet hos gränssnittet med style-sheets. </li></ul>font: 75 11pt &quot;Bitstream Vera Sans&quot;; background-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(57, 255, 67, 255)); color: rgb(255, 0, 4);
  47. 47. Anpassningsbart <ul><li>Qt kommer med ett antal rendering backends: </li><ul><li>Raster engine
  48. 48. GDI
  49. 49. OpenGL </li></ul></ul>
  50. 50. Anpassningsbart <ul><li>Qt stödjer de OS som är på frammarch inom embedded: </li><ul><li>Linux
  51. 51. Windows CE
  52. 52. Symbian </li></ul></ul>
  53. 53. Bitsim och Qt <ul><li>Partners med Nokia.
  54. 54. Bidrar med konsulttjänster och BADGE. </li></ul><ul><li>Har arbetat med kunder i Sverige, Norge och USA.
  55. 55. Bidrar med dokumentation och artiklar till Nokia.
  56. 56. Ett av få företag som kommer från HW och arbetar med Qt. </li></ul>
  57. 57. Frågor? [email_address]

×