000
23.08.2004, 16:25 Uhr
~MoTiLoKiVe
Gast
|
Hallo zusammen Durch die Klasse "QVbox" in qt werden Widgets immer optimal z.B. nach Vergrößerung des Fensters an dieses angepasst. Erstellt man nun ein eigenes Widget (ich nenne es mal "QOwnWidget"), das mehrere andere Widgets(Pushbutton...usw.) enthällt, werden ja auch diese Widgets und QOwnWidget selbst optimal im Fenster angeordnet. Das "QVbox" weiß, das es "QOwnWidget" anordnen soll liegt daran, das durch die Vererbung ja auch der Konstruktor von "QVbox" mitaufgerufen und somit auch der this* Zeiger von "QOwnWidget" an "QVbox" übergeben wird. Aber woher weiß "QVbox", dass "QOwnWidget" noch andere Widgets enthält, die es ebenfalls anordnen muss? Beispiel aus der qt Reference Dokumentation:
C++: |
#include <qapplication.h> #include <qpushbutton.h> #include <qslider.h> #include <qlcdnumber.h> #include <qfont.h> #include <qvbox.h> 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" );//hier z.B. quit->setFont( QFont( "Times", 18, QFont::Bold ) ); connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); QLCDNumber *lcd = new QLCDNumber( 2, this, "lcd" );//oder dieses Widget?? 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(); }
|
|