QMainWindow groesse anpassen
-
hallo,
habe in diversen buechern nachgeschaut und auch hier nix gescheites gefunden, hoffe koennt helfen:
ich habe eine von QMainWindow abgeleitetes Objekt mit einer Member-Variablen m_wdg vom Typ QWidget (soll das Hauptwidget sein, welches Kontroll-elemente enthaelt).
parent von m_wdg ist das besagte QMainWindow-Objekt (wird im Konstruktor von QMainWindow zugewiesen.
Ferner habe ich eine weitere von QWidget abgeleitete (user-klasse) member m_board meines hauptfensters (die bei mir ein Spielbrett darstellen soll, dessen groesse ich bei der Konstruktion mit angebe).
die member m_wdg bekommt ein QVBoxLayout zugewiesen und die member m_board ins layout gepackt.
nun wird im Konstruktor des hauptfensters als letztes die member m_wdg ein ebenfalls ein QVBoxLayout gepackt und dieses Layout dem Hauptfenster zugewiesen. mit setCentralWidget(&m_wdg) wird die member m_wdg zum hauptwidget vom hauptfenster.
nach starten meiner anwendung sieht alles wunderbar aus.
allerdings will ich dem hauptfenster sagen, dass seine groesse exakt (und festbleibend) die sein soll, die es hat, wenn es zum ersten mal angezeigt wird.
hierzu muesste ich nach show() aufruf des hauptfensters die groesse des central-widgets ermitteln und diese mit setFixedSize(QSize) festsetzen.
gibt es hierzu eine andere moeglichkeit?
gruss.
-
wenn du einem Mainwindow ein zentrales Widget verpasst, brauchst du kein Layout mehr. Ausser dem Widget, eventuellen Dockwidgets und Menu-, Tool- und Statusbar hast du dann eh nichts aufm Mainwindow.
wenn du unbedingt fixed-size haben willst, waere es besser, wenn du
setFixedSize( this->sizeHint() );
machen wuerdest. Wie gesagt besteht so ein Hauptfenster aus etwas mehr als nur dem zentralem WidgetAusfuehren wuerd ich den Befehl nach dem show des mainwindows, aber vor dem exec der QAppl