【问题标题】:Adding too many Widgets to a QGridLayout向 QGridLayout 添加太多小部件
【发布时间】:2012-05-03 07:31:39
【问题描述】:

我有一个由设计器创建的 UI,其中有一个 QGridLayout,我在其中添加了我的 自定义小部件从代码。添加1~4个自定义小部件时没有问题,但是当我尝试放置更多时,它们会重叠。

这里有一张图片来完成解释:

不重叠:http://i45.tinypic.com/wve8o6.png

重叠:http://i47.tinypic.com/565py.png

我正在尝试找到一种方法来向 QGridLayout 添加某种滚动,因此我的自定义小部件不会在它们之间重叠,并且我可以与它们进行交互。

我尝试使用 QScrollArea,但是当我添加超过 4 个小部件时,它们继续重叠并且滚动无法正常工作。

【问题讨论】:

    标签: c++ qt qwidget qscrollarea qgridlayout


    【解决方案1】:

    在设计代码而不是设计器时,您是否有同样的问题?我遇到了几个问题,发现编写 gui 是一种更简洁、更优雅的方式

    【讨论】:

    • 我没有尝试编写主用户界面,因为它是一个非常简单的用户界面(一些带有一些文本和一些图像的 QLabels,在中心是 QGridLayout),并且在设计器上进行更容易。
    • 尝试以代码方式执行此操作,尤其是在它如此简单的 gui 时。你也会得到更简单的代码,更容易理解的代码。我一直认为 qt 设计器不是一个很好的软件
    • 好的,我试试。但是你知道有什么方法可以给 QGridLayout 添加滚动吗?
    • QScrollWidget 应该这样做。示例见 qt 的文档
    • 当然,抱歉。 Qscrollarea 是你所需要的
    【解决方案2】:

    minimumSize()sizeHint() 在您的自定义小部件上返回什么?我认为您没有正确实施这些。

    【讨论】:

      【解决方案3】:

      我遇到了这个问题,通过设置 this->setMinimumHeight(267); 解决了这个问题其中 267 是我的小部件的 int 高度。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-03
        • 1970-01-01
        • 2010-12-11
        • 2018-08-14
        • 2011-07-20
        • 2020-12-28
        • 1970-01-01
        • 2011-10-28
        相关资源
        最近更新 更多