Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Qt:n

...

ideaa

...

Qt

...

on

Projekti,

...

Application

...

ja

...

Label

...

Qt:n

...

yksi

...

tärkeimmistä

...

tiedostoista

...

on

...

projektitiedosto,

...

tästä

...

qmake

...

ohjelma

...

osaa

...

tehdä

...

automaattisesti

...

make

...

-tiedoston.

...

Ensimäisessä

...

esimerkissämme

...

projektitiedostossa

...

terve.pro

...

kerrotaan,

...

että

...

ollaan

...

tekemässä

...

sovellusta

...

"application",

...

siitä

...

app

...

ja

...

ohjelmaan

...

sisällytetään

...

lähdekoodit

...

SOURCES,

...

nyt

...

terve.cpp

Code Block



{code}
TEMPLATE      = app
SOURCES       = terve.cpp
{code}
Varsinainen ohjelma  

Varsinainen ohjelma  terve.cpp

...

on

...

esitetty

...

alla

...

olevassa

...

"laatikossa"

Code Block



{code}
#include <QApplication> // Kyseessä Qt-sovellus
#include <QLabel> // Label eli ilmoitusikkuna

int main(int argc, char *argv[])
{
    QApplication app(argc, argv); //luodaan pinoon sovellus
    QLabel *label = new QLabel("Terve, eka Qt-sovellus!");
    label->show();
    return app.exec(); //täällä ollaan kunnes sovellus sulkeutuu
}
{code}

h1. 

PushButton,

...

SIGNAL

...

ja

...

SLOT

...

Tässä

...

esimerkissä

...

opetellaan

...

painonappien,

...

signaalien

...

ja

...

slotien

...

käyttöä.

...

Signaalit

...

ja

...

slotit

...

ovat

...

Qt:n

...

tärkeimmät

...

elementit

...

tiedon

...

välitykseen

...

ja

...

ohjelman

...

kulun

...

konrollointiin

...

Qt-ympäristössä.

...

Projektitiedosto

...

loppu.pro

{
Code Block
}
TEMPLATE      = app
SOURCES       = loppu.cpp
{code}

Varsinainen

...

ohjelma

...

on

...

loppu.cpp

...

tiedostossa

Code Block



{code}
#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QPushButton *nappi = new QPushButton("LOPPU");//esitellään nappi
    // yhdistetään napin signaali clicked sovelluksen slotiin quit
    QObject::connect(nappi, SIGNAL(clicked()),&app, SLOT(quit()));
    nappi->show();//näytetään nappi huomaa -> , koska nappi on osoitin kekoon
    return app.exec();
}
{code}

h1. 

QHBoxLayout,

...

QSlider

...

ja

...

QSpinBox

...

Projektitiedosto

...

ika.pro

{
Code Block
}
TEMPLATE      = app
SOURCES       = ika.cpp
{code}

Varsinainen

...

ohjelma

...

on

...

ika.cpp

...

tiedostossa

{
Code Block
}
#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget *window = new QWidget;//luodaan mikä tahansa elementti
    window->setWindowTitle("Anna ikasi:");
    QSpinBox *spinBox = new QSpinBox;//luodaan spinbox kekoon
    QSlider *slider = new QSlider(Qt::Horizontal);//luodaan spinbox kekoon, huomaa parametri, jolla saadaan asetettua sliderin suunta
    spinBox->setRange(0, 130);//määrätään spboxin rajat
    slider->setRange(0, 130);
    QObject::connect(spinBox, SIGNAL(valueChanged(int)),slider, SLOT(setValue(int)));//liitetään spinbox slideriin
    QObject::connect(slider, SIGNAL(valueChanged(int)),spinBox, SLOT(setValue(int)));//liitetään slider spinboxiin
    spinBox->setValue(35);//annetaan alkuarvo, koska slider ja spinbox "naitettiin" keskenään, menee arvo molemmille
    QHBoxLayout *layout = new QHBoxLayout;//tehdään vaakasuora layout ja varataansille tilaa keosta
    layout->addWidget(spinBox);//lisätään vasemmalla layoutiin spinbox
    layout->addWidget(slider);//lisätään oikealle layoutiin slider
    window->setLayout(layout);//lisätään layout näytettävään ikkunaan
    window->show();//näytetään ikkuna
    return app.exec();//suoritetaan sovellus
}
{code}