A Qt egy C++ keretrendszer, amiben elsősorban ablakos alkalmazásokat tudunk fejleszteni.
következő tananyagrész: -
Tartalom
- parancssoros, ékezetes helló világ
- ablakos hello world (QLabel)
- ablakos hello world (QPushButton és QMessageBox)
Parancssoros, ékezetes helló világ
Az első projektünk egy parancssoros Hello World, ahol működnek az ékezetek.
Válasszuk a Fájl menüből a New File or Project menüpontot.
A megnyíló ablakból válasszuk a Qt Console Applicationt.
Adjunk nevet a projektnek.
Build systemnek válasszuk a qmake-t.
Ha jól telepítettük a Qt Creatort, akkor valami ilyesmit látunk, és ki tudjuk választani a megfelelő kitet. Ha itt nem ezt látjuk, tekintsük át a Qt Creator telepítése és alapvető használata tananyagrészt.
A többi oldalon hagyhatunk nyugodtan mindent alapbeállítás szerint.
A main.cpp fájl tartalma legyen a következő:
#include <QTextStream>
int main(int argc, char *argv[]) {
QTextStream out(stdout);
QString str_example = QString::fromUtf8("Helló Világ!");
out << str_example << '\n';
}
Láthatjuk, hogy a Qt keretrendszert használva sokkal egyszerűbben működnek az ékezetek, mint a szabványos C++ esetén.
Ablakos hello world (QLabel)
Hozzunk létre egy új projektet.
Válasszuk a Qt Widgets Application-t.
Nevezzük el a projektet. A többi oldalon nyugodtan hagyhatunk mindent alapbeállítás szerint.
A main.cpp fájlba írjuk bele:
w.setWindowTitle("Hello World");
Ennek köszöhhetően tudjuk megváltoztatni az ablak tetejére írt nevet.
A mainwindow.h fájlba az include direktívák közé írjuk be, hogy #include <QGridLayout> és #include <QLabel>
#include <QGridLayout>
#include <QLabel>
A mainwindow.cpp fálba MainWindow osztály konstruktorába írjuk a következőket:
QLabel* label_example = new QLabel(this);
label_example->setText("hello world");
QGridLayout *gl_example = new QGridLayout(centralWidget());
gl_example->addWidget(button_example, 0, 0, 1, 1, Qt::AlignCenter);
Mint láthatjuk, előbb létre kell hoznunk a grafikus felületi elemet, és csak utána adhatjuk hozzá a layouthoz. Ha hozzáadtuk a layouthoz, akkor jelenik meg.
Az eredmény:
Ablakos hello world (QPushButton és QMessageBox)
Akár az előző projektet is módosíthatjuk, vagy létrehozhatunk egy új projektet.
A mainwindow.h fájlban az include direktívák között szerepeljen ez a három sor:
#include <QGridLayout>
#include <QPushButton>
#include <QMessageBox>
A mainwindow.cpp fájlba a MainWindow osztály konstruktorának végére írjuk a következőket:
QPushButton* button_example = new QPushButton(this);
button_example->setText("Click");
QGridLayout *gl_example = new QGridLayout(centralWidget());
gl_example->addWidget(button_example, 0, 0, 1, 1, Qt::AlignCenter);
QMessageBox* mb_example = new QMessageBox(QMessageBox::Information, "Information", "Hello, World!", QMessageBox::Ok, this);
connect(button_example, SIGNAL(clicked()), mb_example, SLOT(open()));
Ahhoz, hogy a gomra kattintáskor megnyíljon a messagebox, a connect utasítással hozzá kell rendelnünk a gomb clicked signáljához a messagebox megnyitásának slotját.
Az eredmény:
Ha a gombra kattintunk:
következő tananyagrész: -