[QT 5.5.1] TextEdit i Przycisk button
Ostatnio zmodyfikowano 2017-04-08 21:30
wojownik266 Temat założony przez niniejszego użytkownika |
[QT 5.5.1] TextEdit i Przycisk button » 2017-04-08 12:20:34 Czy ktoś mógłby powiedzieć dlaczego po naciśnięciu przycisku "Pokaz text" nic się nie dzieje? #include <QApplication> #include <QTextEdit> #include <QPushButton> #include <QWidget>
class CProgram : public QWidget { public: CProgram( QWidget * parent ); public slots: void pokaz_text(); private: QTextEdit * tex; QPushButton * buton; }; CProgram::CProgram( QWidget * parent = 0 ) : QWidget( parent ) { tex = new QTextEdit( this ); buton = new QPushButton( "POKAZ TEXT", this ); tex->setGeometry( 5, 5, 200, 150 ); buton->setGeometry( 100, 160, 100, 20 ); QObject::connect( buton, SIGNAL( clicked() ), tex, SLOT( pokaz_text() ) ); } void CProgram::pokaz_text() { tex->setText( "kkkk" ); }
int main( int argc, char * argv[] ) { QApplication a( argc, argv ); CProgram cpr; cpr.show(); return a.exec(); }
|
|
maly7 |
» 2017-04-08 12:42:24 Funckja (a raczej metoda) pokaz_text jest metodą klasy CProgram, dlatego powinieneś zrobić tak: QObject::connect( buton, SIGNAL( clicked() ), this, SLOT( pokaz_text() ) ); tex musiałbyś wstawić, gdybyś chciał wykonać metodę QTextEdit, np. hide() QObject::connect( buton, SIGNAL( clicked() ), tex, SLOT( hide() ) ); |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2017-04-08 17:36:27 Z problemem poradziłem sobie w ten sposób że napisałem ten program jeszcze raz ale z rozdzieleniem klasy na dwa pliki plik.h i plik.cpp. Dlaczego program z klasą "globalną" nie działa a z klasą dwu plikowa już tak, pozostanie dla mnie zagadką chyba że ktoś coś wie i napisze dlaczego tak i dlaczego nie? |
|
mateczek |
» 2017-04-08 20:53:14 przede-wszystkim brak makra Q_OBJECT bez tego sygnały i sloty nie działają !!!
Do tego klasa musi dziedziczyć minimum po object. |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2017-04-08 21:30:13 W nowym programie dodałem to wszystko o czym mowa plus w SIGNAL funkcje presed. Miłego dnia! |
|
« 1 » |