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

Ensimmäinen Qt-ohjelma

Projektitiedosto terve.pro

Code Block
TEMPLATE      = app
SOURCES       = terve.cpp

Projektitiedostossa kerrotaan, että kyseessä on sovellus eli käytetään mallia app ja mukaan otettavat tiedostot, nyt Varsinainen ohjelma  terve.cpp Varsinainen ohjelma on terve.cpp tiedostossaon esitetty alla olevassa "laatikossa"

Code Block
#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
}

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ä.Toinen Qt-ohjelma

Projektitiedosto loppu.pro

Code Block
TEMPLATE      = app
SOURCES       = loppu.cpp

Projektitiedostossa kerrotaan, että kyseessä on sovellus ja mukaan otettavat tiedostot, nyt terve.cpp

Varsinainen ohjelma on loppu.cpp tiedostossa

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

...

QHBoxLayout, QSlider ja QSpinBox

Projektitiedosto ika.pro

Code Block
TEMPLATE      = app
SOURCES       = ika.cpp

...

Varsinainen ohjelma on ika.cpp tiedostossa

Code Block

p, li { white-space: pre-wrap; }

#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 astettuaasetettua 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

}