【问题标题】:Qt: Why children widgets overlapping in QGridLayout?Qt:为什么子小部件在 QGridLayout 中重叠?
【发布时间】:2014-07-10 12:46:02
【问题描述】:

我有一个固定大小的小部件x。然后起初我拿了一个 QScrollArea,然后是一个 QGridLayout,我将其设置为 scrollAreaWidgetContent 的布局。然后我开始在网格布局的 (0,0), (0,1), (1,0), (1,1)... 的布局中添加一些小部件x。然后当我运行程序时,奇怪的是当我垂直缩小窗口时,小部件重叠了。

正如预期的那样,当我垂直增加窗口大小时,它们不再重叠。

但奇怪的是当我水平缩小窗口时不会出现这个问题。例如,

我的问题是,为什么会发生这种情况,更重要的是,记住我想使用 gridlayout,如何解决这个问题?

【问题讨论】:

    标签: qt widget qgridlayout


    【解决方案1】:

    正如您在问题中所说: 您的小部件具有固定大小,因此当没有剩余空间时布局不会缩小它们。 那么问题来了:当你缩小窗口时你想发生什么?

    1. 如果您想缩小小部件,您必须将小部件的 sizePolicy 从“Fixed”更改为“Preferred”。
    2. 如果您想减少布局中的小部件数量,则可以在调整大小事件中添加事件处理程序并将其删除
    3. 如果要禁止缩小窗口,则需要将滚动区域的 sizePolicy 设置为固定或 minimumSize

    【讨论】:

    • 我只想让滚动选项像水平缩小窗口时一样出现。我不希望调整小部件的大小,当然也不希望它们重叠!我只想显示滚动选项。
    • 你把QScrollArea的verticalScrollBarPolicy设置为“ScrollBarAsNeeded”了吗?
    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    相关资源
    最近更新 更多