Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » Ausrichtung von Child Widgets unter qt 3.0

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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();
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.08.2004, 19:40 Uhr
typecast
aka loddab
(Operator)


Jau, das is ne Qt Frage ->
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.08.2004, 21:38 Uhr
typecast
aka loddab
(Operator)


So jetzt zu deiner Frage:

Hab ich dich richtig verstanden, dass du eine QVBox hast und in diese das QOwnWidget reinsteckst (bzw dem Konstruktor von QOwnWidget die QVBox als parent mitgibst)?

Oder ist QOwnWidget selbst von QVBox abgeleitet?

Ich denke das zweite wird eher der Fall sein. QVBox ordnet naemlich nur die Elemente an, die DIREKT an die Instanz von QVBox gebunden sind (indem du die Instanz als parent mitgibst)

Wenn du sowas hier hast:


C++:
class QOwnWidget : public QWidget {
...
public:
    QOwnWidget( QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) {
        QPushButton* b1 = new QPushButton("bla", this);
        QPushButton* b2 = new QPushButton("blub", this);
    }
};

...

class QMyBox : public QVBox {
public:
   QMyBox( QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) {
        QOwnWidget * ow  = new QOwnWidget(this);
        QPushButton* b3 = new QPushButton("blabla");
   }
};



dann werden in QMyBox NUR die Elemente ow und b3 angeordnet. b1 und b2 werden von QMyBox nicht angeruehrt. Das muss QOwnWidget selber uebernehmen.

Alles andere waere ja auch nicht sinnvoll, weil QOwnWidget ja eigene Layouts defineren kann (und meistens auch tut).

Ich selber arbeite aber nur selten mit QVBox und QHBox. Ich verwende lieber QGridLayout. Damit kann ich die Effekte die ich mir wuensche viel schneller zusammenschreiben (auch der Designer von trolltech arbeitet afaik damit)
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: