Seite 1 von 1
Minimieren/Maximieren mit Layouts [gelöst]
Verfasst: 17. Februar 2006 09:43
von chronos
Hi @ all,
mal ne dumme Frage aber wie bewege ich mein Layout dazu sich mit seinem Parent Window zu vergrößern bzw verkleineren.
Ich habe ein Mainwindow mit einem QHBoxLayout in dem eine ListView, und ein Tab-Container ist. Diese sollen sich wenn das MainWindow maximiert wird, mit vergrössern.
Irgendwelche Ideen?
Re: Minimieren/Maximieren mit Layouts
Verfasst: 17. Februar 2006 10:23
von macman
Nimm den Designer, erstell dir einen Dialog mit Objekten und Layouts und dann schaust Du dir hinterher die generierte ui_dialog.h an, Stichwort QSizePolicy.
Verfasst: 17. Februar 2006 11:50
von chronos
das prob ist ich hab es mit dem Designer erstellt:
Code: Alles auswählen
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QHBoxLayout>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QSpacerItem>
#include <QtGui/QStatusBar>
#include <QtGui/QTabWidget>
#include <QtGui/QTreeWidget>
#include <QtGui/QWidget>
class Ui_MainWindow
{
public:
QAction *actionWfdef_laden;
QAction *actionBeenden;
QWidget *centralwidget;
QWidget *widget;
QHBoxLayout *hboxLayout;
QTreeWidget *treeWidget;
QSpacerItem *spacerItem;
QTabWidget *tabWidget;
QWidget *tab;
QWidget *tab_2;
QMenuBar *menubar;
QMenu *menuDatei;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(QSize(1182, 875).expandedTo(MainWindow->minimumSizeHint()));
QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(7), static_cast<QSizePolicy::Policy>(7));
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(MainWindow->sizePolicy().hasHeightForWidth());
MainWindow->setSizePolicy(sizePolicy);
MainWindow->setAutoFillBackground(false);
actionWfdef_laden = new QAction(MainWindow);
actionWfdef_laden->setObjectName(QString::fromUtf8("actionWfdef_laden"));
actionBeenden = new QAction(MainWindow);
actionBeenden->setObjectName(QString::fromUtf8("actionBeenden"));
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
widget = new QWidget(centralwidget);
widget->setObjectName(QString::fromUtf8("widget"));
widget->setGeometry(QRect(20, 10, 1141, 821));
hboxLayout = new QHBoxLayout(widget);
hboxLayout->setSpacing(6);
hboxLayout->setMargin(0);
hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
treeWidget = new QTreeWidget(widget);
treeWidget->setObjectName(QString::fromUtf8("treeWidget"));
QSizePolicy sizePolicy1(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(7));
sizePolicy1.setHorizontalStretch(0);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(treeWidget->sizePolicy().hasHeightForWidth());
treeWidget->setSizePolicy(sizePolicy1);
hboxLayout->addWidget(treeWidget);
spacerItem = new QSpacerItem(10, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
hboxLayout->addItem(spacerItem);
tabWidget = new QTabWidget(widget);
tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
tab = new QWidget();
tab->setObjectName(QString::fromUtf8("tab"));
tabWidget->addTab(tab, QApplication::translate("MainWindow", "Tab 1", 0, QApplication::UnicodeUTF8));
tab_2 = new QWidget();
tab_2->setObjectName(QString::fromUtf8("tab_2"));
tabWidget->addTab(tab_2, QApplication::translate("MainWindow", "Tab 2", 0, QApplication::UnicodeUTF8));
hboxLayout->addWidget(tabWidget);
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 1182, 22));
menuDatei = new QMenu(menubar);
menuDatei->setObjectName(QString::fromUtf8("menuDatei"));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QString::fromUtf8("statusbar"));
statusbar->setGeometry(QRect(0, 853, 1182, 22));
MainWindow->setStatusBar(statusbar);
menubar->addAction(menuDatei->menuAction());
menuDatei->addAction(actionWfdef_laden);
menuDatei->addAction(actionBeenden);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
actionWfdef_laden->setText(QApplication::translate("MainWindow", "wfdef laden", 0, QApplication::UnicodeUTF8));
actionBeenden->setText(QApplication::translate("MainWindow", "Beenden", 0, QApplication::UnicodeUTF8));
tabWidget->setTabText(tabWidget->indexOf(tab), QApplication::translate("MainWindow", "Tab 1", 0, QApplication::UnicodeUTF8));
tabWidget->setTabText(tabWidget->indexOf(tab_2), QApplication::translate("MainWindow", "Tab 2", 0, QApplication::UnicodeUTF8));
menuDatei->setTitle(QApplication::translate("MainWindow", "Datei", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
#endif // UI_MAINWINDOW_H
Verfasst: 17. Februar 2006 12:02
von macman
Das MainWindow hat kein Layout, so wie ich das sehe. Einfach mal in den freien Bereich des Fensters klicken und dann ein Layout auswählen, kein Layout ins Fenster ziehen.
Verfasst: 17. Februar 2006 12:02
von chronos
ooo mann bin ich doof
Mein Fehler:
Ich hab im Designer immer ein Layout auf das MainWindow gezogen anstatt mit rechtsclick->layout das Gewünschte auszuwählen... Ouuu
Aber müsste es nicht möglich sein dennoch das gewünschte Verhalten zu erzielen, selbst wenn ich das Layout einfach per Drag And Drop einfüge?
Verfasst: 17. Februar 2006 12:52
von macman
chronos hat geschrieben:Aber müsste es nicht möglich sein dennoch das gewünschte Verhalten zu erzielen, selbst wenn ich das Layout einfach per Drag And Drop einfüge?
Du kannst auch Layouts einem Layout hinzufügen, was oft auch nötig ist. Dann nutzt man so ein Layout genauso wie ein Widget, es macht also durch aus Sinn. Wenn man es erstmal weiss, kommt man gut mit zurecht. Man sollte einen Dialog oder ein Window sowieso vorher im Designer testen, allein schon um zu sehen, ob alle Spacer sich richtig verhalten usw.
Verfasst: 17. Februar 2006 15:14
von chronos
okay danke für die Hilfe