【发布时间】:2016-06-02 12:58:37
【问题描述】:
我正在尝试使用自定义 QGraphicsWidgets 在 QGraphicsView 和 QGraphicsScene 上创建一个网格,但我不确定最好的方法是什么。我正在使用 PyQt4,但这是一个常见的 Qt 问题。
我当前的实现包含以下内容。一个 QGraphicsScene(带视图)和一个 QGraphicsWidget,其中包含我插入自定义小部件的 QGraphicsGridLayout。
我遇到的问题是这些自定义小部件中的每一个都有不同的大小,并且它们重叠,我不确定如何分别更改每个小部件的大小。此外,网格需要“响应”,即如果小部件有一定宽度,则应该有 3 列,但如果小部件较小,则应仅显示 2 列。
我读过这可能可以通过实现尺寸提示来解决,但我还没有真正找到关于该主题的任何好的文档。
所以我的问题是:
- 有没有更好的方法来制作小部件的层次结构,我目前的似乎过度(场景>小部件>布局>小部件)
- 使不同大小的小部件具有相同大小的最佳方法是什么(这样它们在网格中的大小都将显示相同且不重叠)?
- 我的主要 QGraphicsWidget(在其上显示网格)没有占据视图的整个宽度,实现这一点的最佳方法是什么?
- 如何让我的 QGraphicsGrid “响应”?
【问题讨论】: