1 / 14

Qt-käyttöliittymäkirjasto

Qt-käyttöliittymäkirjasto. Matti Lehtinen 27.11.2007. Esitelmän rakenne. Qt yleisesti Työkalut Kääntäminen Kirjastomoduulit Tapahtumienkäsittely Esimerkki Yhteenveto. Qt yleisesti. Graafinen käyttöliittymäkirjasto Norjalaisen Trolltech-yrityksen kehittämä

Download Presentation

Qt-käyttöliittymäkirjasto

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Qt-käyttöliittymäkirjasto Matti Lehtinen 27.11.2007

  2. Esitelmän rakenne • Qt yleisesti • Työkalut • Kääntäminen • Kirjastomoduulit • Tapahtumienkäsittely • Esimerkki • Yhteenveto

  3. Qt yleisesti • Graafinen käyttöliittymäkirjasto • Norjalaisen Trolltech-yrityksen kehittämä • Toimii useammilla käyttöjärjestelmillä • C++ ja Java • Lisenssit kaupalliseen ja avoimeen kehitykseen • Kaupallinen tarjoaa eri versioita eri käyttötarkoituksiin

  4. Työkalut (1/2) • Designer • Käyttöliittymien rakentamiseen • Oman koodin kirjoittaminen ei mahdollista • Laaja komponenttivalikoima • Löytyy lisäosana useammalle IDE:lle

  5. Työkalut (2/2) • Linquist • Helpottaa kielien kääntämistä • Monia pienempiä työkaluja • Lähdekoodit mukana • Assistant, dokumentaation navigointiin

  6. Kääntäminen • C++ kääntäjää ja linkittäjää ei ole mukana • Qmake, kuvaustiedostojen (makefile) tekemiseen • Toimii projektitiedostojen mukaan • Uic (User Interface Compiler) • Moc (Meta Object Compiler)

  7. Kirjastomoduulit • Core • GUI • OpenGL • Verkko • Tietokanta • XML

  8. Tapahtumienkäsittely • Signal-slot-mekanismi • Tyyppien tarkistus • Yhdistelmien tekeminen vapaata • Luokkien ei tarvitse tuntea toisiaan • Yhdistelmiä rajattomasti • Periytyvät normaalisti • Turvallista käyttää säikeitten kanssa • Ei yhteensopiva C++:n poikkeuksienkäsittelyn kanssa

  9. Esimerkkisovellus (1/4)

  10. Esimerkkisovellus (2/4) • hellowindow.h #include <qpushbutton.h> #include <qtimer.h> class HelloWindow : public QPushButton { Q_OBJECT private: QTimer *timer; unsigned int timeLeft; public: HelloWindow(); private slots: void updateTime(); signals: void helloQuits(); };

  11. Esimerkkisovellus (3/4) • hellowindow.cpp #include "hellowindow.h" HelloWindow::HelloWindow() { timeLeft = 10; timer = new QTimer(this); this->connect(timer, SIGNAL(timeout()), this, SLOT(updateTime())); this->connect(this, SIGNAL(clicked()), this, SIGNAL(helloQuits())); setWindowTitle(tr("Hello World!")); resize(200, 60); updateTime(); timer->setInterval(1000); timer->start(); } void HelloWindow::updateTime() { if (!(--timeLeft)) emit helloQuits(); this->setText(tr("Quit") + "..." + QString::number(timeLeft)); }

  12. Esimerkkisovellus (4/4) • main.cpp #include <qapplication.h> #include "hellowindow.h" int main(int argc, char **argv) { QApplication app(argc, argv); HelloWindow hello; QObject::connect(&hello, SIGNAL(helloQuits()), &app, SLOT(quit())); hello.show(); return app.exec(); }

  13. Yhteenveto + Helppo ja monipuolinen kirjasto + Turvallinen tapahtumienkäsittely + C++ - Signal-slot-mekanismi ei yhtä nopeaa kuin suora takaisinkutsu - Ei yhteensopiva C++:n poikkeuksienkäsittelyn kanssa

  14. Kiitos!

More Related