【问题标题】:How to avoid layouts to change their size?如何避免布局改变它们的大小?
【发布时间】:2018-02-25 09:27:16
【问题描述】:

我在一个用 Python 3.5 编写的 Pyqt4 应用程序中设置了一个具有两个布局的 QMainWindow,称为 A 和 B

它们通常显示如下:

但在某些时候,布局 B 中的某些内容会变得更宽。因此,布局 B 也变得更宽,与布局 A 重叠,而后者仍然部分隐藏:

有人可以帮我找到解决这种行为的方法吗? 我想以某种方式锁定布局 A 和 B 的宽度以避免这个问题。

【问题讨论】:

标签: python python-3.x qt4 pyqt4


【解决方案1】:

没有看到您的代码,我怀疑您将这两种布局都直接添加到主窗口中,而没有将它们放入可以控制其大小调整的主布局中。这种方式会造成不必要的问题,因为您需要手动管理布局的位置和大小。 Read more in the Qt docs.

要解决这个问题,您只需将QHBoxLayout 添加到主窗口,然后使用addLayout() 和适当的拉伸因子将子布局添加到主窗口。下面是一个 C++ 示例(未经测试)来说明必要的步骤:

QHBoxLayout* mainLayout = new QHBoxLayout();

QGridLayout* childLayout0 = new QGridLayout();
QGridLayout* childLayout1 = new QGridLayout();

//Add widgets to the child layouts

mainLayout->addLayout(childLayout0, 2);
mainLayout->addLayout(childLayout1, 1);

mainWindow->setLayout(mainLayout);

【讨论】:

    猜你喜欢
    • 2016-03-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多