Development/Tutorials/Qt4 Ruby Tutorial/Chapter 01/fi: Difference between revisions

From KDE TechBase
(Created page with "== Hei Maailma! ==")
(Updating to match new version of source page)
 
(32 intermediate revisions by one other user not shown)
Line 1: Line 1:
<languages />
<languages />
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Qt4 Ruby Tutorial/Chapter 01}}


{{TutorialBrowser|
{{TutorialBrowser|
Line 7: Line 5:
name=Hei Maailma!|
name=Hei Maailma!|
pre=[http://www.ruby-lang.org Ruby]|
pre=[http://www.ruby-lang.org Ruby]|
next=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial/Chapter_2|Oppikurssi 2 - Sen kutsuminen saa aikaan lopettamisen]]
next=[[Special:myLanguage/Development/Tutorials/Qt4_Ruby_Tutorial/Chapter_2|Oppikurssi 2 - Sen kutsuminen aiheuttaa lopettamisen]]
}}
}}


== Hei Maailma! ==
== Hei Maailma! ==
[[Image:Qt4_Ruby_Tutorial_Screenshot_1.png|center]]
[[Image:Qt4_Ruby_Tutorial_Screenshot_1.png|center]]
Files:
Tiedostot:
* [http://www.darshancomputing.com/qt4-qtruby-tutorial/tutorial/t1/t1.rb t1.rb]
* [http://www.darshancomputing.com/qt4-qtruby-tutorial/tutorial/t1/t1.rb t1.rb]


=== Overview ===
=== Yleistä ===


This first program is a simple "Hello world" example.  
Tämä ensimmäinen ohjelma on yksinkertainen "Hei Maailma"-esimerkki. Se sisältää vain pelkän minimin, jonka tarvitset saadaksesi Qt-sovelluksen toimimaan. Kuva yllä on näytönkaappaus tästä ohjelmasta.
It contains only the bare minimum you need to get a Qt application up and running.  
The picture above is a screenshot of this program.


Here's the complete source code for the application:
Tässä on sovelluksen täydellinen lähdekoodi:


<syntaxhighlight lang="ruby">
<syntaxhighlight lang="ruby">
Line 28: Line 24:
app = Qt::Application.new(ARGV)
app = Qt::Application.new(ARGV)


hello = Qt::PushButton.new('Hello World!')
hello = Qt::PushButton.new('Hei Maailma!')
hello.resize(100, 30)
hello.resize(100, 30)
hello.show()
hello.show()
Line 35: Line 31:
</syntaxhighlight>
</syntaxhighlight>


=== Intro ===
=== Esittely ===


The top level in a QtRuby application usually only needs to perform some kind of initialization and then pass control to the Qt library,
Ylimmällä tasolla QtRuby-sovelluksen on tavallisesti suoritettava jonkin kaltainen alustus ja välitettävä ohjaus Qt-kirjastolle, joka sitten kertoo ohjelmalle käyttäjän toimista tapahtumien välityksellä.
which then tells the program about the user's actions via events.


There has to be exactly one [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application] object in every GUI application that uses Qt.  
Jokaisessa graafisessa käyttöliittymäsovelluksessa, joka käyttää Qt:tä, on tarkalleen vain yksi [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]-objekti.  
[http://doc.qt.nokia.com/latest/qapplication.html Qt::Application] manages various application-wide resources, such as the default font and cursor.
[http://doc.qt.nokia.com/latest/qapplication.html Qt::Application] hallinnoi useita sovellustason resursseja, kuten oletuskirjasimia ja kohdistinta.


[http://doc.qt.nokia.com/latest/qpushbutton.html Qt::PushButton] is a GUI push button that the user can press and release.  
[http://doc.qt.nokia.com/latest/qpushbutton.html Qt::PushButton] on graafisen käyttöliittymän painike, jota käyttäjä voi painaa tai vapauttaa.  
It manages its own look and feel, like every other [http://doc.qt.nokia.com/latest/qwidget.html Qt::Widget].
Se hallinnoi sen omaa käyttötuntumaa, kuten jokainen muu [http://doc.qt.nokia.com/latest/qwidget.html Qt::Widget].
A widget is a user interface object that can process user input and draw graphics.  
Käyttöliittymäkomponentti on käyttöliittymän rajapintaobjekti, joka voi käsitellä käyttäjän syötön ja piirtää grafiikkaa.  
The programmer can change both the overall look and feel and
Ohjelmoija voi vaihtaa sekä koko käyttötuntuman että monia sen pienempiä ominaisuuksia (sellaisia kuin väri), samoin kuin käyttöliittymäkomponentin sisällön.  
many minor properties of it (such as color), as well as the widget's content.  
[http://doc.qt.nokia.com/latest/qpushbutton.html Qt::PushButton] voi näyttää joko tekstiä tai [http://doc.qt.nokia.com/latest/qicon.html Qt::Icon]-kuvakkeen.
A [http://doc.qt.nokia.com/latest/qpushbutton.html Qt::PushButton] can show either text or a [http://doc.qt.nokia.com/latest/qicon.html Qt::Icon].


=== Line by Line Walkthrough ===
=== Läpikäynti rivi riviltä ===


<syntaxhighlight lang="ruby">
<syntaxhighlight lang="ruby">
Line 56: Line 50:
</syntaxhighlight>
</syntaxhighlight>


This line loads the QtRuby extension.
Tämä rivi lataa QtRuby-laajennoksen.


<syntaxhighlight lang="ruby">
<syntaxhighlight lang="ruby">
Line 62: Line 56:
</syntaxhighlight>
</syntaxhighlight>


'''<tt>app</tt>''' is this program's [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application] instance. It is created here.  
'''<tt>app</tt>''' on tämän ohjelman [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]-ilmentymä. Se luodaan tässä.  
We pass '''<tt>ARGV</tt>''' to the [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application] constructor
Välitämme '''<tt>ARGV</tt>''' kohteelle [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]-konstruktori,
so that it can process certain standard command-line arguments (such as '''<tt>-display</tt>''' under X11).  
jotta se voi käsitellä tiettyjä vakiokomentoriviargumentteja (sellaisia kuin '''<tt>-display</tt>''' X11:n alla).  
All command-line arguments recognized by Qt are removed from '''<tt>ARGV</tt>'''.  
Kaikki Qt:n tunnistamat komentoriviargumentit poistetaan kohteesta '''<tt>ARGV</tt>'''.  


<strong>Note:</strong> It is essential that the [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application] object be created before any window-system parts of Qt are used.
<strong>Huomaa:</strong> On olennaista että [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]-objekti luodaan ennen kuin mitään Qt:n ikkunajärjestelmän osaa käytetään.


<syntaxhighlight lang="ruby">
<syntaxhighlight lang="ruby">
hello = Qt::PushButton.new('Hello World!')
hello = Qt::PushButton.new('Hei Maailma!')
</syntaxhighlight>
</syntaxhighlight>


Here, after the [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application], comes the first window-system code: A push button is created.
Tässä, [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]:n jälkeen, tulee ensimmäinen ikkunajärjestelmän koodi: Painike luodaan.


The button is set up to display the text "Hello world!".  
Painike on asetettu näyttämään tekstin "Hei maailma!".  
Because we don't specify a parent window (as second argument to the
Koska emme määritä emoikkunaa (toisena argumenttina kohteeseen
[http://doc.qt.nokia.com/latest/qpushbutton.html Qt::PushButton] constructor),  
[http://doc.qt.nokia.com/latest/qpushbutton.html Qt::PushButton].konstruktori),  
the button will be a window of its own, with its own window frame and title bar.
painike on omassa ikkunassaan, omalla ikkunakehyksellä ja otsikkopalkilla.


<syntaxhighlight lang="ruby">
<syntaxhighlight lang="ruby">
Line 84: Line 78:
</syntaxhighlight>
</syntaxhighlight>


The button is set up to be 100 pixels wide and 30 pixels high
Painike on asetettu olemaan 100 pikseliä leveä ja 30 pikseliä korkea
(excluding the window frame, which is provided by the windowing system).  
(poislukien ikkunakehys, jonka ikkunointijärjestelmä tarjoaa).  
We could call [http://doc.qt.nokia.com/latest/qwidget.html#pos-prop Qt::Widget::move()] to assign a specific screen position to the widget,  
Voisimme kutsua metodia [http://doc.qt.nokia.com/latest/qwidget.html#pos-prop Qt::Widget::move()] liittääksemme erityisen näyttösijainnin käyttöliittymäkomponenttiin,  
but instead we let the windowing system choose a position.
mutta sen sijaan annoimme ikkunointijärjestelmän valita sijainnin.


<syntaxhighlight lang="ruby">
<syntaxhighlight lang="ruby">
Line 93: Line 87:
</syntaxhighlight>
</syntaxhighlight>


A widget is never visible when you create it. You must call [http://doc.qt.nokia.com/latest/qwidget.html#show Qt::Widget::show()] to make it visible.
Käyttöliittymäkomponentti ei ole koskaan näkyvä luontihetkellä. Sinun on kutsuttava metodia [http://doc.qt.nokia.com/latest/qwidget.html#show Qt::Widget::show()] sen tekemiseksi näkyväksi.


<syntaxhighlight lang="ruby">
<syntaxhighlight lang="ruby">
Line 99: Line 93:
</syntaxhighlight>
</syntaxhighlight>


This is where our program passes control to Qt.  
Tämä on se paikka, jossa ohjelmamme välittää ohjauksen Qt:lle.  
[http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()] will return when the application exits.  
[http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()]-metodi palaa, kun sovellus lopetetaan.  
([http://doc.qt.nokia.com/latest/qcoreapplication.html Qt::CoreApplication] is [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]'s base class.  
([http://doc.qt.nokia.com/latest/qcoreapplication.html Qt::CoreApplication] on [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]-sovelluksen perusluokka.  
It implements [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]'s core, non-GUI functionality and can be used when developing non-GUI applications.)
Se toteuttaa [http://doc.qt.nokia.com/latest/qapplication.html Qt::Application]-ytimen, ei-graafiset käyttöliitymätoiminnallisuudet ja sitä voidaan käyttää kun kehitetään ei-graafisia käyttöliittymäsovelluksia.)


In [http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()], Qt receives and processes user and system events and passes these on to the appropriate widgets.
Metodissa [http://doc.qt.nokia.com/latest/qcoreapplication.html#exec Qt::CoreApplication::exec()] Qt vastaanottaa ja käsittelee käyttäjän ja järjestelmän tapahtumia ja välittää nämä sopiville käyttöliittymäkomponenteille.


You should now try to run this program.
Sinun pitäisi nyt yrittää ajaa tämä ohjelma.


=== Running the Application ===
=== Sovelluksen suorittaminen ===


When you run the application, you will see a small window filled with a single button, and on it you can read the famous words: "Hello world!"
Kun suoritat sovelluksen, näet pienen ikkunan, jonka täyttää yksi painike, ja siinä voit lukea kuuluisat sanat: "Hei maailma!"


=== Exercises ===
=== Harjoitukset ===


Try to resize the window. Click the button. If you're running X11,  
Yritä muuttaa ikkunan kokoa. Napsauta painiketta. Jos suoritat sovelluksen X11:ssa,  
try running the program with the '''<tt>-geometry</tt>''' option (for example, '''<tt>-geometry 100x200+10+20</tt>''').
yritä suorittaa ohjelma käyttäen '''<tt>-geometry</tt>'''-valitsinta (esimerkiksi, '''<tt>-geometry 100x200+10+20</tt>''').


[[Category:Ruby]]
[[Category:Ruby]]

Latest revision as of 12:32, 13 July 2012

Other languages:
Hei Maailma!
Tutorial Series   Qt4 Ruby-oppikurssi
Previous   Ruby
What's Next   Oppikurssi 2 - Sen kutsuminen aiheuttaa lopettamisen
Further Reading   n/a

Hei Maailma!

Tiedostot:

Yleistä

Tämä ensimmäinen ohjelma on yksinkertainen "Hei Maailma"-esimerkki. Se sisältää vain pelkän minimin, jonka tarvitset saadaksesi Qt-sovelluksen toimimaan. Kuva yllä on näytönkaappaus tästä ohjelmasta.

Tässä on sovelluksen täydellinen lähdekoodi:

require 'Qt4'

app = Qt::Application.new(ARGV)

hello = Qt::PushButton.new('Hei Maailma!')
hello.resize(100, 30)
hello.show()

app.exec()

Esittely

Ylimmällä tasolla QtRuby-sovelluksen on tavallisesti suoritettava jonkin kaltainen alustus ja välitettävä ohjaus Qt-kirjastolle, joka sitten kertoo ohjelmalle käyttäjän toimista tapahtumien välityksellä.

Jokaisessa graafisessa käyttöliittymäsovelluksessa, joka käyttää Qt:tä, on tarkalleen vain yksi Qt::Application-objekti. Qt::Application hallinnoi useita sovellustason resursseja, kuten oletuskirjasimia ja kohdistinta.

Qt::PushButton on graafisen käyttöliittymän painike, jota käyttäjä voi painaa tai vapauttaa. Se hallinnoi sen omaa käyttötuntumaa, kuten jokainen muu Qt::Widget. Käyttöliittymäkomponentti on käyttöliittymän rajapintaobjekti, joka voi käsitellä käyttäjän syötön ja piirtää grafiikkaa. Ohjelmoija voi vaihtaa sekä koko käyttötuntuman että monia sen pienempiä ominaisuuksia (sellaisia kuin väri), samoin kuin käyttöliittymäkomponentin sisällön. Qt::PushButton voi näyttää joko tekstiä tai Qt::Icon-kuvakkeen.

Läpikäynti rivi riviltä

require 'Qt4'

Tämä rivi lataa QtRuby-laajennoksen.

app = Qt::Application.new(ARGV)

app on tämän ohjelman Qt::Application-ilmentymä. Se luodaan tässä. Välitämme ARGV kohteelle Qt::Application-konstruktori, jotta se voi käsitellä tiettyjä vakiokomentoriviargumentteja (sellaisia kuin -display X11:n alla). Kaikki Qt:n tunnistamat komentoriviargumentit poistetaan kohteesta ARGV.

Huomaa: On olennaista että Qt::Application-objekti luodaan ennen kuin mitään Qt:n ikkunajärjestelmän osaa käytetään.

hello = Qt::PushButton.new('Hei Maailma!')

Tässä, Qt::Application:n jälkeen, tulee ensimmäinen ikkunajärjestelmän koodi: Painike luodaan.

Painike on asetettu näyttämään tekstin "Hei maailma!". Koska emme määritä emoikkunaa (toisena argumenttina kohteeseen Qt::PushButton.konstruktori), painike on omassa ikkunassaan, omalla ikkunakehyksellä ja otsikkopalkilla.

hello.resize(100, 30)

Painike on asetettu olemaan 100 pikseliä leveä ja 30 pikseliä korkea (poislukien ikkunakehys, jonka ikkunointijärjestelmä tarjoaa). Voisimme kutsua metodia Qt::Widget::move() liittääksemme erityisen näyttösijainnin käyttöliittymäkomponenttiin, mutta sen sijaan annoimme ikkunointijärjestelmän valita sijainnin.

hello.show()

Käyttöliittymäkomponentti ei ole koskaan näkyvä luontihetkellä. Sinun on kutsuttava metodia Qt::Widget::show() sen tekemiseksi näkyväksi.

app.exec()

Tämä on se paikka, jossa ohjelmamme välittää ohjauksen Qt:lle. Qt::CoreApplication::exec()-metodi palaa, kun sovellus lopetetaan. (Qt::CoreApplication on Qt::Application-sovelluksen perusluokka. Se toteuttaa Qt::Application-ytimen, ei-graafiset käyttöliitymätoiminnallisuudet ja sitä voidaan käyttää kun kehitetään ei-graafisia käyttöliittymäsovelluksia.)

Metodissa Qt::CoreApplication::exec() Qt vastaanottaa ja käsittelee käyttäjän ja järjestelmän tapahtumia ja välittää nämä sopiville käyttöliittymäkomponenteille.

Sinun pitäisi nyt yrittää ajaa tämä ohjelma.

Sovelluksen suorittaminen

Kun suoritat sovelluksen, näet pienen ikkunan, jonka täyttää yksi painike, ja siinä voit lukea kuuluisat sanat: "Hei maailma!"

Harjoitukset

Yritä muuttaa ikkunan kokoa. Napsauta painiketta. Jos suoritat sovelluksen X11:ssa, yritä suorittaa ohjelma käyttäen -geometry-valitsinta (esimerkiksi, -geometry 100x200+10+20).