gpt4 book ai didi

c++ - 如何使 QMdiArea 子窗口小部件不可调整大小?

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:20 24 4
gpt4 key购买 nike

所以我的代码的非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) 这样的东西,因为小部件的大小可以通过编程方式改变(子小部件被添加和删除)。但用户不应该能够调整它的大小。

最佳答案

即使 MyWidget 不可调整大小,当您调用时:

ui->mdiArea->addSubWindow(wgt);

小部件放在 QMdiSubWindow可调整大小的。您所要做的就是获取创建的窗口并修复其大小:

QMdiSubWindow* subWindow = ui->mdiArea->addSubWindow(wgt);
subWindow->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);

这应该可以,但我自己还没有尝试过这段代码。

编辑:好吧......显然没有修复大小。 :(

关于c++ - 如何使 QMdiArea 子窗口小部件不可调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8857471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com