Hi!
Ich steige gerade in C++ und die qt-Bibliothek ein und arbeite mich gerade durch die Tutorials. Zu den der Funktion connect hätte ich da eine Frage. Die Buttons pbtn_dec, pbtn_bin, usw. in folgendem Code funktionieren nicht:
Bsp1:
Wenn ich das richtig verstanden habe, wird bei connect die Methode "method()" des Objekts "object2" aufgerufen, wenn das Event "event()" des Objekt "objects1()" eintritt (Beispiel 1).
Wieso das hier funktioniert, kann ich mir erklären:
Wieso dann aber das hier nicht funktioniert, kann ich mir nicht erklären:
Hab' ich da etwas völlig falsch verstanden?
Ich steige gerade in C++ und die qt-Bibliothek ein und arbeite mich gerade durch die Tutorials. Zu den der Funktion connect hätte ich da eine Frage. Die Buttons pbtn_dec, pbtn_bin, usw. in folgendem Code funktionieren nicht:
Code:
class MyWidget : public QVBox
{
public:
MyWidget( QWidget *parent=0, const char *name=0 );
};
MyWidget::MyWidget( QWidget *parent, const char *name )
: QVBox( parent, name )
{
QPushButton *quit = new QPushButton( "Quit", this, "quit" );
quit->setFont( QFont( "Times", 18, QFont::Bold ) );
connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) );
QLCDNumber *lcd = new QLCDNumber( 8, this, "lcd" );
//lcd->setMode(QLCDNumber::Bin);
QSlider * slider = new QSlider( Horizontal, this, "slider" );
slider->setRange( 0, 99 );
slider->setValue( 0 );
connect( slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)) );
QPushButton *pbtn_dec = new QPushButton( "DEC", this, "dec" );
QPushButton *pbtn_hex = new QPushButton( "HEX", this, "hex" );
QPushButton *pbtn_bin = new QPushButton( "BIN", this, "bin" );
QPushButton *pbtn_oct = new QPushButton( "OCT", this, "oct" );
pbtn_dec->setFont( QFont( "Times", 20, QFont::Bold ) );
pbtn_hex->setFont( QFont( "Times", 18, QFont::Bold ) );
pbtn_bin->setFont( QFont( "Times", 18, QFont::Bold ) );
pbtn_oct->setFont( QFont( "Times", 18, QFont::Bold ) );
connect( pbtn_dec, SIGNAL(clicked()), lcd, SLOT(setMode(QLCDNumber::DEC)) );
connect( pbtn_hex, SIGNAL(clicked()), lcd, SLOT(setMode(QLCDNumber::HEX)) );
connect( pbtn_bin, SIGNAL(clicked()), lcd, SLOT(setMode(QLCDNumber::BIN)) );
connect( pbtn_oct, SIGNAL(clicked()), lcd, SLOT(setMode(QLCDNumber::OCT)) );
}
int main( int argc, char **argv )
{
QApplication a( argc, argv );
MyWidget w;
a.setMainWidget( &w );
w.show();
return a.exec();
}
Bsp1:
Code:
connect( object1, SIGNAL(event()), object2, SLOT(method()) );
Wenn ich das richtig verstanden habe, wird bei connect die Methode "method()" des Objekts "object2" aufgerufen, wenn das Event "event()" des Objekt "objects1()" eintritt (Beispiel 1).
Wieso das hier funktioniert, kann ich mir erklären:
Code:
connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) );
Wieso dann aber das hier nicht funktioniert, kann ich mir nicht erklären:

Code:
connect( pbtn_dec, SIGNAL(clicked()), lcd, SLOT(setMode(QLCDNumber::DEC)) );
Hab' ich da etwas völlig falsch verstanden?
