Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuJarno Härkönen Muutettu yli 9 vuotta sitten
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 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 #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!
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.