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 |
Projektitiedostossa kerrotaan, että kyseessä on sovellus ja mukaan otettavat tiedostot, nyt terve.cpp
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, 125130);//määrätään spboxin rajat slider->setRange(0, 125130); 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(3035);//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 } |