Portál AbcLinuxu, 7. května 2025 19:47
#include QApplication #include QPushButton #include QLabel #include QHBoxLayout //slouží k zarovnání prvků, snažší než zadávat souřadnice #include QCheckBox class trida_check : public QWidget { public: /* * Jako argument konstruktoru se předává rodič, * v případě že se jedná o hlavní okno tak žádný * rodič, v našem případě 0 */ trida_check(QWidget* parent = 0); }; trida_check::trida_check(QWidget*){ QHBoxLayout* radek = new QHBoxLayout(this); QPushButton* tlacitko = new QPushButton(tr("Check this motherfucker!")); QCheckBox* zaskrtavaci_pole = new QCheckBox(); //tlačítko lze zamáčknout tlacitko->setCheckable(true); //propojí objekty, třetí parametr je ukazatel na instanci objektu Qt, jehož slot se má spustit v reakci na signál. connect(tlacitko, SIGNAL(clicked()), zaskrtavaci_pole, SLOT(toogle())); connect(zaskrtavaci_pole, SIGNAL(clicked()), tlacitko, SLOT(toogle())); //přidá do lajny naše objekty radek->addWidget(tlacitko); radek->addWidget(zaskrtavaci_pole); //použije daný řádek (layout) setLayout(radek); } int main(int argc, char** argv) { //instance třídy Qapplication, předávají se argumenty shellu, musí být v každém GUI programu QApplication app(argc, argv); QLabel win("Hello fucking world!"); //instance popisku QPushButton tlacitko("&Quit"); //instance buttonou //qApp, ukazatel na třídu QApplication, connect, přetížená metoda na propojení třídy qApp a buttonu //QObject:: se pak může i vynechat z důvodu častého výskytu QObject::connect(&tlacitko, SIGNAL(clicked()), qApp, SLOT(quit())); /* * Signál je zvláštní metoda, která nemá tělo a nevrací hodnotu, má pouze prototyp. * Slot je metoda, která se zavolá v reakci na nějaký signál */ trida_check objekt; //zobrazení okna, pzn...nečekaně tlacitko.show(); win.show(); return app.exec(); //vracení výsledku metody app }
Řešení dotazu:
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.