我使用Qt佈局系統問題。第一張照片是我得到的,第二張是我想要的。 我有一個垂直分離器和兩個小部件。第一器具已擴大政策和拉伸係數爲1。第二個具有最小高度的政策,minimumHeight 100和拉伸係數0開始後的結果應該是第二張圖片,但實際上它是第一張照片,我需要手動將分流下來。問題在哪裏?Qt的佈局系統(的QTextEdit還沒有最小尺寸)
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSizePolicy sp;
QSplitter * splitter = new QSplitter(Qt::Vertical);
splitter->setHandleWidth(1);
splitter->setChildrenCollapsible(false);
sp.setHorizontalPolicy(QSizePolicy::Expanding);
sp.setVerticalPolicy(QSizePolicy::Expanding);
splitter->setSizePolicy(sp);
QWidget * topWidget = new QWidget(splitter);
sp.setVerticalStretch(1);
topWidget->setSizePolicy(sp);
topWidget->setMinimumHeight(200);
QWidget * bottomWidget = new QWidget(splitter);
sp.setVerticalStretch(0);
bottomWidget->setSizePolicy(sp);
QTextEdit * edit = new QTextEdit();
edit->setFrameStyle(QFrame::NoFrame);
edit->setMinimumSize(0, 100);
sp.setVerticalPolicy(QSizePolicy::Minimum);
edit->setSizePolicy(sp);
QVBoxLayout * bottomWidgetLayout = new QVBoxLayout(bottomWidget);
bottomWidgetLayout->addWidget(edit);
bottomWidget->setLayout(bottomWidgetLayout);
splitter->setStretchFactor(0, 1);
splitter->setStretchFactor(1, 0);
this->centralWidget()->layout()->addWidget(splitter);
}
我想GrowFlag政策,但只能通過分光器在用戶想要的,這就是爲什麼我設置QSizePolicy ::最低和拉伸係數爲0,那麼如果有其他小部件QSizePolicy ::擴展和的stretchFactor> 0,它得到整個「未使用「的空間,所以我的TextEdit應該只有100px的高度。 – Krab
啓動屏幕應該類似於第二畫面 – Krab
分級式> setStretchFactor(0,1); splitter-> setStretchFactor(1,0); 這些行看衰 – Shf