我有一个固定大小的小部件 x
。然后首先我拿了一个 QScrollArea,然后是一个 QGridLayout,我将其设置为 scrollAreaWidgetContent 的布局。然后我开始在网格布局的 (0,0)、(0,1)、(1,0)、(1,1)... 布局中添加一些小部件 x
。然后当我运行程序时,奇怪的是当我垂直缩小窗口时,小部件重叠。
正如预期的那样,当我垂直增加窗口大小时,它们不再重叠。
但奇怪的是,当我水平缩小窗口时,这个问题并没有发生。例如,
我的问题是,为什么会发生这种情况,更重要的是,请记住我想使用 gridlayout,如何解决这个问题?
最佳答案
正如您在问题中所说: 您的小部件具有固定大小,因此当没有剩余空间时布局不会缩小它们。 所以问题是:缩小窗口时你希望发生什么?
- 如果您想缩小小部件,则必须将小部件的 sizePolicy 从“固定”更改为“首选”。
- 如果你想减少布局中的小部件数量,那么你可以在调整大小事件中添加一个事件处理程序并删除它们
- 如果你想禁止窗口缩小,那么你需要将scrollarea的sizePolicy设置为一个fixed或者minimumSize
关于Qt:为什么子部件在 QGridLayout 中重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24676942/