Qt Designer:无法使滚动区域正常工作

问题描述 投票:0回答:2

我使用 Qt Designer 创建布局。因为一切都在不停地跳跃,所以我使用了分组框和水平/垂直布局。不同的部分应该有固定的大小。

我必须使其全部适合一个非常小的窗口......所以我必须将所有组添加到 ScrollArea 中。

我一直在努力让它工作......让它显示滚动条。调整大小没有任何效果。

我读到我必须应用布局 - 我很难应用它。

我选择了网格布局 - 用组框界定必须保持固定的区域。

仍然调整滚动区域的大小,要么没有给我滚动条,要么调整组框内容的大小 - 覆盖 qgraphicviews 和按钮,即使我的想法是必须显示内容......

一旦我制作了固定大小的每个组框,我终于使这一切都工作了 - 使用滚动条。

所以 - 现在 - 我有

 Window    ---> QWidget (sizePolicy (Preferred, Preferred, 0, 0))
   scrollArea    ---> QScrollArea (sizePolicy (Preferred, Preferred, 0, 0);
                                   verticalScrollBarPolicy: ScrollBarsAsNeeded, same with horiz)
                                   widgetResizable: checked)
    scrollAreaWidgetContents   ---> QWidget  (layout: grid layout; 
                                    sizePolicy (Preferred, Preferred, 0, 0))
      grp1    ---> QgroupBox (sizePolicy (Fixed, Fixed, 0, 0))
        contents
      grp2    ---> QgroupBox (sizePolicy (Fixed, Fixed, 0, 0))
        contents
      ....

仍然有一个问题:我可以在设计器中调整滚动区域的大小,并将其设置为我需要的大小。但即使大小是“首选”而不是“固定”,一旦程序运行,我就无法调整滚动区域的大小。

我认为正常的行为应该是:我应该从滚动区域是什么开始,希望我可以设置窗口大小以匹配滚动区域。

如果我调整窗口大小,滚动区域应该随之变化。

我看到发生的情况:滚动区域具有固定大小,并且窗口可以调整大小(但滚动区域外有空白区域)。

如何使滚动区域仍然调整大小(并与窗口匹配,因为它是其中唯一的对象)?

qt scroll qt-designer
2个回答
0
投票

将布局应用于 Window QWidget(哪个布局无关紧要)并将滚动区域放置在其中。

(回答我问题的最后阶段,这样我就不必在逐渐弄清楚如何使其工作后删除它)


0
投票

要解决这个问题,您需要做两件事:

  1. 为 QscrollArea 进行布局:(例如垂直布局,如果 你想要垂直滚动)
  2. 之后您应该申请至少 高度(或宽度或两者都取决于您想要的滚动效果) 包含scrollAreaContent内的元素的frame/Widget (这意味着您需要将 grp1 和 grp2 放入框架或小部件内), 这个最小尺寸应该小于正常的高度/宽度 你的scrollArea wifget。
© www.soinside.com 2019 - 2024. All rights reserved.