Development/Tutorials/Qt4 Ruby Tutorial/Chapter 3/fi: Difference between revisions
Centerlink (talk | contribs) (Created page with "quit = Qt::PushButton.new('Poistu', window)") |
(Updating to match new version of source page) |
||
(13 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
{{TutorialBrowser| | {{TutorialBrowser| | ||
series=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial|Qt4 Ruby -oppikurssi]]| | series=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial|Qt4 Ruby -oppikurssi]]| | ||
name=Perhearvot| | name=Perhearvot| | ||
pre=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial/Chapter_2|Oppikurssi 2 - | pre=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial/Chapter_2|Oppikurssi 2 - Poistuu kutsuttaessa]]| | ||
next=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial/Chapter_04|Oppikurssi 4 - Olkoon siellä käyttöliittymäkomponentteja]] | next=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial/Chapter_04|Oppikurssi 4 - Olkoon siellä käyttöliittymäkomponentteja]] | ||
}} | }} | ||
Line 39: | Line 37: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === Läpikäynti rivi riviltä === | ||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
window = Qt::Widget.new() | window = Qt::Widget.new() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Luomme tässä yksinkertaisesti pelkän käyttöliittymäkomponenttiobjektin. Luokka [http://doc.qt.nokia.com/latest/qwidget.html Qt::Widget] on käyttöliittymäobjektien perusluokka. Käyttöliittymäkomponentti on käyttölittymän ydin: Se vastaanotta hiiren, näppäimistön ja muita tapahtumia ikkunointijärjestelmästä, piirtää esityksen itsestään näytölle. Vanhempikomponentti ja käyttöliittymäkomponentin edustalla sijaitsevat komponentit leikkaavat käyttöliittymäkomnponenttia. | |||
käyttöliittymäkomponenttia, joka ei ole upotettu vanhempikäyttöliittymäkomponenttiin, kuten tämä erityinen käyttöliittymäkomponentti, kutsutaan ikkunaksi. Tavallisesti ikkunoilla on oma ikkunakehys ja tehtäväpalkkirivi, jotka ikkunointijärjestelmä tarjoaa. Käyttöliittymäkomponentti ilman vanhempikäyttöliittymäkomponenttia on aina riippumaton ikkuna. Ikkunointijärjestelmä ohjaa sen alkusijaintia näytöllä. | |||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
Line 52: | Line 50: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Asetamme ikkunan leveydeksi 200 pikseli ja korkeudeksi 1200 pikseliä. | |||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
quit = Qt::PushButton.new(' | quit = Qt::PushButton.new('Poistu', window) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Laps on syntynyt. Tämä [http://doc.qt.nokia.com/latest/qpushbutton.html Qt::PushButton]-painike luodaan vanhempikäyttöliittymäkomponentilla ('''<tt>window</tt>'''). Lapsikäyttöliittymäkomponentti näytetään aina sen vanhemman alueella. Kun se näytetään, vanhemman rajat leikkaavat sitä. Oletuksena se on istutettu vanhemman vasempaan yläkulmaan, koordinaatteihin (0, 0). | |||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
Line 64: | Line 62: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
[http://doc.qt.nokia.com/latest/qwidget.html#setgeometry Qt::Widget::setGeometry()]-funktio ottaa neljä argumenttia: Kaksi ensimmäistä argumenttia ovat painikkeen vasemman yläkulman x- ja y-koordinaatit. Koordinaatit ovat suhteellisia vanhempikäyttöliittymäkomponenttiin. Kaksi viimeistä argumenttia ovat painikkeen leveys ja korkeus. Tuloksen on painike, joka ulottuu koordinaateista (10, 40) koordinaatteihin (190, 80). | |||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
Line 70: | Line 68: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Kun vanhempikäyttöliittymä näytetään, se kutsuu kaikkien lasten näytön (paitsi niiden, jotka on eksplisiittisesti piilotettu käyttäen [http://doc.qt.nokia.com/latest/qwidget.html#hide Qt::Widget::hide()]-metodia). | |||
=== | === Sovelluksen suorittaminen === | ||
Paiinike ei enää täytä koko ikkunaa. Sen sijaan se pysyttelee koordinaateissa (10, 40) ikkunan sisällä ja (180, 40)-kokoisena [http://doc.qt.nokia.com/latest/qwidget.html#geometry-prop Qt::Widget::setGeometry()]-kutsun ansiosta. | |||
=== | === Harjoitukset === | ||
Yritä muuttaa ikkunan kokoa. Kuinka painike muuttuu? Mitä tapahtuu painikkeen korkeudelle, jos suoritat ohjelman suuremmilla kirjasimilla. Mitä tapahtuu, kun yrität tehdä ikkunasta todella pienen? | |||
[[Category:Ruby]] | [[Category:Ruby]] |
Latest revision as of 09:11, 14 July 2012
Tutorial Series | Qt4 Ruby -oppikurssi |
Previous | Oppikurssi 2 - Poistuu kutsuttaessa |
What's Next | Oppikurssi 4 - Olkoon siellä käyttöliittymäkomponentteja |
Further Reading | n/a |
Perhearvot
Tiedostot:
Yleistä
Tämä esimerkki näyttää, kuinka luodaan vanhempi- ja lapsikäyttöliittymäkomponentteja.
Pidämme asiat yksinkertaisina ja käytämme vain yhtä vanhempaa ja yksinäistä lasta.
require 'Qt4'
app = Qt::Application.new(ARGV)
window = Qt::Widget.new()
window.resize(200, 120)
quit = Qt::PushButton.new('Poistu', window)
quit.font = Qt::Font.new('Times', 18, Qt::Font::Bold)
quit.setGeometry(10, 40, 180, 40)
Qt::Object.connect(quit, SIGNAL('clicked()'), app, SLOT('quit()'))
window.show()
app.exec()
Läpikäynti rivi riviltä
window = Qt::Widget.new()
Luomme tässä yksinkertaisesti pelkän käyttöliittymäkomponenttiobjektin. Luokka Qt::Widget on käyttöliittymäobjektien perusluokka. Käyttöliittymäkomponentti on käyttölittymän ydin: Se vastaanotta hiiren, näppäimistön ja muita tapahtumia ikkunointijärjestelmästä, piirtää esityksen itsestään näytölle. Vanhempikomponentti ja käyttöliittymäkomponentin edustalla sijaitsevat komponentit leikkaavat käyttöliittymäkomnponenttia.
käyttöliittymäkomponenttia, joka ei ole upotettu vanhempikäyttöliittymäkomponenttiin, kuten tämä erityinen käyttöliittymäkomponentti, kutsutaan ikkunaksi. Tavallisesti ikkunoilla on oma ikkunakehys ja tehtäväpalkkirivi, jotka ikkunointijärjestelmä tarjoaa. Käyttöliittymäkomponentti ilman vanhempikäyttöliittymäkomponenttia on aina riippumaton ikkuna. Ikkunointijärjestelmä ohjaa sen alkusijaintia näytöllä.
window.resize(200, 120)
Asetamme ikkunan leveydeksi 200 pikseli ja korkeudeksi 1200 pikseliä.
quit = Qt::PushButton.new('Poistu', window)
Laps on syntynyt. Tämä Qt::PushButton-painike luodaan vanhempikäyttöliittymäkomponentilla (window). Lapsikäyttöliittymäkomponentti näytetään aina sen vanhemman alueella. Kun se näytetään, vanhemman rajat leikkaavat sitä. Oletuksena se on istutettu vanhemman vasempaan yläkulmaan, koordinaatteihin (0, 0).
quit.setGeometry(10, 40, 180, 40)
Qt::Widget::setGeometry()-funktio ottaa neljä argumenttia: Kaksi ensimmäistä argumenttia ovat painikkeen vasemman yläkulman x- ja y-koordinaatit. Koordinaatit ovat suhteellisia vanhempikäyttöliittymäkomponenttiin. Kaksi viimeistä argumenttia ovat painikkeen leveys ja korkeus. Tuloksen on painike, joka ulottuu koordinaateista (10, 40) koordinaatteihin (190, 80).
window.show()
Kun vanhempikäyttöliittymä näytetään, se kutsuu kaikkien lasten näytön (paitsi niiden, jotka on eksplisiittisesti piilotettu käyttäen Qt::Widget::hide()-metodia).
Sovelluksen suorittaminen
Paiinike ei enää täytä koko ikkunaa. Sen sijaan se pysyttelee koordinaateissa (10, 40) ikkunan sisällä ja (180, 40)-kokoisena Qt::Widget::setGeometry()-kutsun ansiosta.
Harjoitukset
Yritä muuttaa ikkunan kokoa. Kuinka painike muuttuu? Mitä tapahtuu painikkeen korkeudelle, jos suoritat ohjelman suuremmilla kirjasimilla. Mitä tapahtuu, kun yrität tehdä ikkunasta todella pienen?