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

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Tietokannat: MySQL ja PostgreSQL. Yleistä • Relaatiotietokantaohjelmisto, jolla voidaan luoda, ylläpitää ja muuttaa ja hallinnoida tietokantoja • Avoin.
Minimaalinen Java-ohjelma •Kaikki ohjelmakoodi on luokkamäärityksen sisällä •Ohjelma käynnistyy ”public static void main(String[] args)”-metodista •System.out.print()
Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
Osion kaksi kertaus Jukka Juslin © Jukka Juslin.
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 13 Monimuotoisuus.
Luokan otsikko- ja toteutustiedosto tMyn1 Luokan otsikko- ja toteutustiedosto •Tähän asti ohjelmaesimerkit on toteutettu siten, että kaikki koodi on yhdessä.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Java-perusteet Kari Kujansuu
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
JSP Uraani-ryhmän toteuttamassa Vainu- palvelussa.
13. Pakkaukset.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Ohjelmointi Vesa Lappalainen jyu class Hello { public static void main(String[] args) { System.out.println("Hello world!"); } }
Komentoriviparametrit
C-ohjelmointi, kevät 2006 Taulukot Binääritiedostot Luento
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
9. Periytyminen Javassa.
Sami Jantunen LTY/Tietotekniikan osasto
Dynaamiset oliottMyn1 Dynaamiset oliot Dynaamisen olion tunnuksen esittely ja olion määrittely voivat tapahtua yhtäaikaisesti tai eri aikaan. Dynaamisen.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Workshop: Test-first approach Pietu Pohjalainen. Testaus perinteisesti Tarkoituksena löytää virheitä ohjelmasta mutta mikä on virhe? Sijoittuu tavallisesti.
Java Java on Sun Microsystems yhtiön kehittämä laaja olio-pohjainen ohjelmointikieli, joka on laitteistoriippumaton. Laitteistoriippumattomuudessa on.
GNU-ohjelmointityökalut Jussi Raunio TI09OHJ
Komponenttipohjainen ohjelmistotekniikka (TJTSS56) Osa 12 Kevätlukukausi 2010 Jyväskylän yliopisto Tietojenkäsittelytieteiden laitos Markku Sakkinen.
Ohjelmointi Vesa Lappalainen jyu class Hello { public static void main(String[] args) { System.out.println("Hello world!"); } }
GNU-Ohjelmointityökalut. Tärkeimmät perustyökalut ovat: Kääntäjä (GCC) Asennusohjelma (MAKE) Virhejäljitin (GDB) GNU Binary Utilities (binutils) GNU C.
20. Javan omat luokat.
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
HelloWorld-ohjelma. 5.2 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
Jaakko Markkanen & Ari Laine. Yhteisö, joka kehittää työpöytäympäristöä KDE SC (Software Compilation) Avoimen lähdekoodin ja voittoa tavoittelematon yhteisö.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet.
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Ohjelmointi työtä n. 16 h/vko onnistumista työtä n. 16 h/vko onnistumista #include int main(void) { std::cout
GNOME ja KDE Jani Pesu GNOME GNOME (GNU Network Object Model Environment) on graafinen työpöytäympäristö. Käytetään Unixin kaltaisissa käyttöjärjestelmissä.
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
PHP ja MySQL PHP: Hypertext Preprosessor. PHP, johdanto Komentosarjakieli, joka on suunniteltu dynaamisen sisällön tuottamiseen verkossa PHP on sekä kieli,
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
String-vertailusta ja Scannerin käytöstä (1/2)
5. Kapselointi.
6. Metodit.
Harjoitustyö kurssille Mobile Application Development
Funktio-ohjelmointi ja Java
4. Komentoriviparametrit
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
7. Näytölle tulostaminen
11. Javan valintarakenteet
6. Metodit.
3. Komentoriviparametrit
4. Attribuutit.
15. Ohjelmoinnin tekniikkaa
7. Näytölle tulostaminen
3. Attribuutit.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

Qt-käyttöliittymäkirjasto Matti Lehtinen

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ä Toimii useammilla käyttöjärjestelmillä C++ ja Java Lisenssit kaupalliseen ja avoimeen kehitykseen Kaupallinen tarjoaa eri versioita eri käyttötarkoituksiin

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

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

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)

Kirjastomoduulit Core GUI OpenGL Verkko Tietokanta XML

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

Esimerkkisovellus (1/4)

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(); };

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)); }

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(); }

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

Kiitos!