我在QWidget
內有QGridLayout
。我一直在向此添加子女QGridLayouts
。我希望QWidget
根據子佈局所需的大小調整大小,但用戶無法調整大小。Qt QWidget禁用重新調整大於所需的最小大小
MainWindow.cpp(MainWindow
從QWidget
繼承)
MainWindow::MainWindow(QWidget *parent) :
QWidget(parent)
{
QGridLayout *mainLayout = new QGridLayout();
{
AAController *ac1 = new AAController("Ins1");
AAController *ac2 = new AAController("Ins2");
AAController *ac3 = new AAController("Ins3");
mainLayout->addLayout(ac1, 0, 0);
mainLayout->addLayout(ac2, 0, 1);
mainLayout->addLayout(ac3, 1, 1);
}
setLayout(mainLayout);
}
AAController.cpp(AAController
從QGridLayout
繼承)
AAController::AAController(const QString& instrument)
:_instrument(instrument)
{
_lblInstrument = new QLabel(_instrument);
_lblMismatchThreshold = new QLabel("Mismatch threshold : ");
_lblQuoteVolume = new QLabel("Quote volume : ");
_btnUpdateAlgo = new QPushButton("Update Algo");
_spnMismatchThreshold = new QSpinBox();
_spnQuoteVolume = new QSpinBox();
this->addWidget(_lblInstrument, 0, 1, 1, 2, Qt::AlignCenter);
this->addWidget(_lblMismatchThreshold, 1, 0, 1, 2);
this->addWidget(_lblQuoteVolume, 2, 0, 1, 2);
this->addWidget(_btnUpdateAlgo, 3, 2, 1, 2);
this->addWidget(_spnMismatchThreshold, 1, 3);
this->addWidget(_spnQuoteVolume, 2, 3);
setSizeConstraint(SetFixedSize);
}
我得到的是這樣的:
但此刻我可以改變它的大小,如:
我想禁用此類調整大小。我該怎麼做呢?
你的主窗口正好被設置爲固定大小。添加子項時,將其設置爲最小值,然後將其設置回固定大小。 –
可能不會重複,因爲它沒有StatusBar也沒有QDialog。 –
@SebastianLange:您的方法會產生一個固定大小的窗口。但大於上面第一張圖片中的最小值。 – nakiya