Ich habe ein Qwidget Klasse erstellt die eine qwt Widget enthält.
Jetzt möchte ich das das Widget 'qwtwidget' immer die Größe der übergeordnetem widgets hat und bei einer Größenänderung automatisch mitangepasst wird.
Wie mache ich das ?
Matthias
Größe von Widget an Größe von übergeordnetem anpassen
Also, ich kenne die Layoutklassen schon, und verwende sie in Dialogen auch regelmäßig. Aber ich weiß nicht welche Eigenschaft/Funktion ich genau verwenden sollte. Da hilft mir auch dreimaliges Lesen der Doku nicht weiter.VuuRWerK hat geschrieben:Layout verwenden. Doku lesen!
Im Prinzip ist das Problem equivalent zu Dialogen deren Layouts mit einer Größenänderung des Dialogs mitwachsen sollen. Das wird in dem Beispiel allerdings ebenfalls nicht angesprochen.
Äh, addWidget, addLayout und addStretch/Spacing?pospiech hat geschrieben:Aber ich weiß nicht welche Eigenschaft/Funktion ich genau verwenden sollte.
Wenn das Problem äquivalent ist, warum sollte nicht auch die Lösung äquivalent sein?Im Prinzip ist das Problem equivalent zu Dialogen
Fragen über Fragen...
Gruß,
/dev
Ich habe nun das qwtwidget in ein QGridLayout gepackt. Die UI cpp Datei enthält dann folgenden Code:Deever hat geschrieben:Äh, addWidget, addLayout und addStretch/Spacing?pospiech hat geschrieben:Aber ich weiß nicht welche Eigenschaft/Funktion ich genau verwenden sollte.
Code: Alles auswählen
QWidget *gridLayout;
QGridLayout *gridLayout1;
QwtPlot *qwtPlot;
void setupUi(QWidget *QCurvePlot)
{
if (QCurvePlot->objectName().isEmpty())
QCurvePlot->setObjectName(QString::fromUtf8("QCurvePlot"));
QCurvePlot->resize(487, 297);
QCurvePlot->setAutoFillBackground(false);
gridLayout = new QWidget(QCurvePlot);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
gridLayout->setGeometry(QRect(40, 10, 241, 251));
gridLayout1 = new QGridLayout(gridLayout);
gridLayout1->setObjectName(QString::fromUtf8("gridLayout1"));
gridLayout1->setContentsMargins(0, 0, 0, 0);
qwtPlot = new QwtPlot(gridLayout);
qwtPlot->setObjectName(QString::fromUtf8("qwtPlot"));
QSizePolicy sizePolicy(QSizePolicy::Maximum, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(qwtPlot->sizePolicy().hasHeightForWidth());
qwtPlot->setSizePolicy(sizePolicy);
gridLayout1->addWidget(qwtPlot, 0, 0, 1, 1);
Code: Alles auswählen
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
qwtPlot->setSizePolicy(sizePolicy);
gridLayout1->setOriginCorner(Qt::TopLeftCorner);
gridLayout1->setColumnStretch ( 0, 20);
gridLayout1->setRowStretch (0, 20);
Matthias