mkdir pokus cd pokus kate pokus.cc qmake -project qmake make ./pokus #include #include #include #include #include #include class MyWidget : public QVBox { Q_OBJECT public: MyWidget( QWidget *parent=0, const char *name=0 ); private: QPushButton * quit; public slots: void stisknuto (); }; #include "pokus.moc" void MyWidget::stisknuto () { quit->setText ("ABC"); } MyWidget::MyWidget( QWidget *parent, const char *name ) : QVBox( parent, name ) { quit = new QPushButton( "Knoflik", this, "quit" ); quit->setFont( QFont( "Times", 18, QFont::Bold ) ); connect( quit, SIGNAL(clicked()), this, SLOT(stisknuto()) ); QLCDNumber *lcd = new QLCDNumber( 2, this, "lcd" ); QSlider * slider = new QSlider( Horizontal, this, "slider" ); slider->setRange( 0, 99 ); slider->setValue( 0 ); connect( slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)) ); } int main( int argc, char **argv ) { QApplication a( argc, argv ); MyWidget w; a.setMainWidget( &w ); w.show(); return a.exec(); } #include #include #include #include #include #include #include using namespace std; class MyButton; class MyWidget : public QWidget { Q_OBJECT public: MyWidget ( QWidget *parent=0, const char *name=0 ); private: QPushButton * button; QValueVector < MyButton * > knofliky; QTextEdit * edit; public slots: void abc (); void vypis (); // void def (); // void klm (int i); }; class MyButton : public QPushButton { Q_OBJECT public: MyButton ( const char *text, QWidget *parent=0, const char *name=0 ); public slots: void stisknuto (); }; #include "pokus.moc" void MyButton::stisknuto () { setText ("Click"); setGeometry (100, 10, 70, 20); } MyButton::MyButton ( const char *text, QWidget *parent, const char *name ) : QPushButton( text, parent, name ) { } void MyWidget::abc () { button->setText ("Stiknuto"); setBackgroundColor(QColor (200, 128, 100)); MyButton * p = new MyButton ("Knoflik", this); knofliky.push_back (p); p->show (); connect( p, SIGNAL(clicked()), p, SLOT(stisknuto ()) ); // ( new QPushButton ("Knoflik", this) ) ->show (); } void MyWidget::vypis () { edit->setText (""); cout << "Seznam knofliku" << endl; for (int i = 0; i < knofliky.size (); i++) { cout << "knoflik " << i << " " << knofliky[i]->text () << endl; edit->append (QString ("knoflik ") + QString::number (i) + " " + knofliky[i]->text ()); } } MyWidget::MyWidget( QWidget *parent, const char *name ) : QWidget( parent, name ), button (NULL) { setMinimumSize( 200, 120 ); // setMaximumSize( 400, 240 ); setBackgroundColor(QColor (128, 128, 255)); button = new QPushButton( "Quit", this, "quit" ); button->setGeometry( 62, 40, 120, 30 ); button->setFont( QFont( "Times", 18, QFont::Bold ) ); connect( button, SIGNAL(clicked()), this, SLOT(abc ()) ); QPushButton * b = new QPushButton( "List", this); b->setGeometry( 62, 80, 120, 30 ); connect( b, SIGNAL(clicked()), this, SLOT(vypis ()) ); edit = new QTextEdit (this); edit->setGeometry( 62, 120, 200, 200 ); } int main( int argc, char **argv ) { QApplication a( argc, argv ); MyWidget w; w.setGeometry( 100, 100, 200, 120 ); a.setMainWidget( &w ); w.show(); return a.exec(); }