【发布时间】:2012-01-13 21:27:45
【问题描述】:
所以我的代码的非QMdiArea 版本,
MyWidget::MyWidget(QWidget* parent)
{
...
layout()->setSizeConstraint( QLayout::SetFixedSize );
}
MainWindow::MainWindow(...)
{
...
MyWidget* wgt = new MyWidget(NULL);
wgt->show();
}
工作得很好,并产生了一个用户无法调整大小的小部件。但是当MainWindow代码被替换为
MainWindow::MainWindow(...)
{
...
MyWidget* wgt = new MyWidget(ui->mdiArea); //Or MyWidget(NULL), same result
ui->mdiArea->addSubWindow(wgt);
}
现在位于QMdiArea 内的窗口可以调整大小。这似乎不是 Qt::WindowFlags 的问题,它们不处理调整大小策略。当然有办法做到这一点?注意我不能使用setFixedSize(ht, wd) 之类的东西,因为小部件的大小可以通过编程方式更改(添加和删除子小部件)。但用户应该无法调整它的大小。
【问题讨论】: