You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 89 Next »

 

Qt on Trolltechin tekemä käyttöliittymien ja ohjelmakoodin totetukseen tarkoitettu työkalu. Trolltech  on nykyään Nokia Oy:n omistuksessa. Qt:stä on avoin versio LGPL, jolla voi tehdä omia sovelluksia. Esimerkiksi Ubuntuun Qt kannattaa ladata pakettienhallinnan avulla, jolloin se ja sen lisäosat asentuvat oikein.   Qt Creator on ns. Cross-Platform Qt IDE (Integrated Development Environment). Qt Creatorilla voi tehdä sovelluksia Linuxiin, Windowsiin, Macille sekä älypuhelimille. Lisäksi tuotetut softat kääntyvät useille laitealustoille. 

  1. [Perusteita]
  2. Tapahtumaperustainen ohjelmointi
  3. Dialogin liukupalkin arvon luku muuttujaan
  4. QMake ja MOC
  5. Dialogin toteutus ohjelmallisesti ilman Qt Designeria, layout jne.
  6. Dialogi graafisella editorilla
  7. Signaalit ja slotit, yksinkertainen esimerkki
  8. Esimerkki c-tiedoston kutsumisesta, liukuva keskiarvo
  9. Validator, double int jne.
  10. Vain haluttujen merkkien hyväksyminen dialogissa, (regular expression, säännälliset lauseet)ja oma luokka dialogille
  11. Heksadesimaalinen SpinBox
  12. QTimer esimerkki
  13. Tilakone
  14. Qt tietorakenteet, QVector, QLinkedList, QList, QMap
  15. Korrelaation laskenta
  16. Lineaarinen regressio
  17. Splitter eli näytön jakaja
  18. Asynkroniset säikeet, simppeli esimerkki
  19. Malli mittaus- ja käyttöliittymäsäikeistä
  20. Qwt esimerkkejä, Qwt on Qt-laajennos, joka sisältää teknisiin sovelluksiin X-Y-näyttöjä, mittareita, nappeja ja muita juttuja
  21. Tietokannan käsittelyä
  22. Harjoitustehtävät
  23. c++ tutorial
  24. Modbus testing software (requires login)
  25. Veneenohjaussimulaattorin päivitys
  26. Ohjelmakuvakkeen lisääminen (Testattu Windowsissa)
  27. Advantech USB-4716 Qt ympäristössä (Debian 4.0)
  28. Demo akun varauksesta, kaytosta ja latauksesta (mm. animaatioita, alustana windows)
  29. [Qt VS2008 framework Windows \-ympäristössä]
  30. Qwt-laajennus Qt VS2008 framework Windows -ympäristössä
  31. Analogwidgets-laajennus Qt VS2008 framework Windows -ympäristössä
  32. Animaatioesimerkit
  33. Ympäristö ristikääntäjälle, Cross-Platform Environment
  1. Suunnittele luokkamalli koneelle. Luokka Kone koostuu luokista Toimilaite ja Prosessi. Toimilaite koostaa luokan Liikeanturi ja VoimaAnturi. Nämä luokat taas perivät luokan Anturi. Tee luokista ensin UML-malli  Dia:lla ja sitten Qt:llä.
  2. Muokkaa mallia siten, että teet luokan dialogi ja laitat sen jäseneksi luokan Kone. Periytä Kone luokasta QThread. 
  3. Korjaa Dialla tekemä malli edellisen tehtävän mukaiseksi.
  4. Lisää anturille jäsenet double vahvistus, double offset, double tulo, double tuloSiYksikkona, double taarattuTuloSiYksikkona, double KeskiarvoistusVektori[10], i , int paikkaVektorissa,  double Summa
  5. Tee käyttöliittymään nappi MittaaTulo ja  sille Dialog luokkaan slot Mittaa. Laita myös LineEdit tai lcd, josta voit lukea mitatun arvon.
  6. Tee Dialog luokkaan signaali MittaaTulonArvo.
  7. Tee luokkaan Anturi slot void PaivitaTulo();
  8. Yhdistä signaali MittaaTulonArvo slotiin PaivitaTulo.
  9. Emitoi (lähetä) signaali MittaaTulonArvo käyttöliittymän slotissa Mittaa.
  10. Tee luokkaan Anturi signaali LahetaMitattuArvo(double) ja ota se vastaan käyttöliittymässä.

    ui

    Dialog

     

    Anturi

    MittaaTulo->

    ->Mittaa

     

     

     

    MittaaTulonArvo->

     

    ->PaivitaTulo

     

    ArvonNaytto<-

     

    <- LahetaMitattuArvo(double)

  11. Laita jokin arvo emitoimaasi signaaliin LahetaMitattuArvo(double) ja testaa, että arvo tulee näytölle.
  12. Tee käyttöliittymään Horizontal Slider ja välitä se signaali - slot mekanismilla  Anturi- luokan muuttujaan tulo.
  13. Tee Anturi-luokkaan funktio Paivita. Kutsu tätä edellisessä tehtävässä tekemästäsi slotista.
  14. Laita Paivita - funktion sisällöksi tuloSiYksikkona=tulo*vahvistu+offset;
  15. Testaa, että vahvistettu tulo tulee näytölle.
  16. Tee  Umbrello -ohjelmalla UML-malli tähän asti tekemästäsi softasta.
  17. Tässä tehtävässä toteutamme asynkronisen säikeen, joka lukee anturia ja lähettää signaalilla tiedon käyttöliittymälle. Tee Kone luokkaan run-funktio ja  siihen forever toistorakenne. Katso mallia säikeistetystä ohjelmasta.| //tämä luokan esittelyyn |

    QTime displayUpdateTimer;

    forever

    Unknown macro: { || //Tähän anturin tiedon laskenta || if (NayttoAjastin.elapsed() > Paivitysaika) ||
    Unknown macro: { || Nayttoajastin.restart(); || emit LahetaAnturinTiedot(Arvo); || }
    || }
  18. Tee esimerkki [Qwt plot|display/koneautomaatio/QwtPlot+-+esimerkki] esimerkki.
  19. Hyödynnä esimerkkiä ja tulosta anturin arvo qwtplotissa.
  20. Päivitä edellisiä tehtäviä kuvaava Umbrello malli.
  21. Tee kone esimerkki siten, että teet kaikista luokista dialogeja. Laita luokkiin toimilaite ja anturi liukupalkit, joilla voit säätää niiden antamia arvoja. Älä käytä enää QThread luokkaa kone luokan perinnässä.
  22. Tee dialog perustainen ohjelma ja koosta se kahdesta alidialogista. Kokeile dialogien avausta show ja exec funktioilla, mitä huomaat? Ohjeita: sisällytä "include" alidialogit päädialogin otsikkotiedostoon, tee dialogeille muuttujat päädialogiin, tee päädialogiin nappi, jolla avaat alidialogit funktioilla exec tai show.    
  23. Lisää edellisen tehtävän dilogeihin viestinvälitystä. Lähetä viesti päädialogista molempiin alidialogeihin. Esimerkiksi niin, että teet dialogiin napin, joka lähettää editline viestin molemmille alidialogeille.
  24. Lisää alidialogeihin viestinvälitys toiseen alidialogiin edellisessä tehtävässä kuvatulla tavalla.
  25. Lisää vielä alidialogeihin vistinvälitys päädialogiin.
  26. Tutustu Kvaserin simplewrite.c ohjelmaan ja liitä se Qt- dialogiin siten, että voit syöttää ohjelman tiedot dialogista.  
  27. Tutustu Kvaserin canmonitor.c ohjelmaan ja liitä se Qt- dialogiin siten, että voit syöttää ohjelman tiedot dialogista.
  28. Tee ohjaus manipulaattorille, joka nostaa laatikon pöydältä ja laittaa sen toiselle pöydälle. Käytä QStateMachine luokkaa ja sen aliluokkia.
  29. Tee edellinen tehtävä käyttäen switch-case rakennetta ja QTimer ajastinta. Kts. Qt:n wiki.
  30. Tee edellinen tehtävä käyttäen tilakoneessa omaa Säiettä QThread.
  31.  
  • No labels
You must log in to comment.