Qt动态布局

时间:2012-02-02 18:25:21

标签: qt pyqt

我正在尝试以缩略图模式实现类似文件浏览器的布局。这些项目位于网格中,它们之间的距离固定,当您调整主窗口大小时,项目会重新定位以适合。

例如,在一个小窗口上,你有:

i1 i2 i3
j1 j2 j3
k1 k2 k3

但是当窗口更宽时,项目变为:

i1 i2 i3 j1
j2 j3 k1 k2
k3

如果你让窗户更宽,那么这些物品就变成了:

i1 i2 i3 j1 j2
j3 k1 k2 k3

我试图尽可能简单地实现它,也许只使用默认类?...

如果您放置无限数量的项目,HBoxLayout不会溢出;他们只是无限排队。

GridLayout无法帮助,因为在您首先放置项目后,在窗口调整大小后,您必须清理布局,重新计算项目数量,使用新订单重新填充布局。它不会自动重新定位项目。

另一种方法是将项目放在TableWidget,Qt3样式中。但那是一样的;在窗口调整大小后,您可以计算新窗口中适合的项目数,清理表格并重新填充。

还有修复位置方法。你把物品放在固定的位置,并在每个窗口调整大小后移动它......这很令人头疼。

有没有人尝试过类似的东西 - 资源管理器或图片浏览器?你是怎么解决这个问题的?

1 个答案:

答案 0 :(得分:8)

我认为您需要考虑从示例集中执行类似FlowLayout的操作。请注意,它有一个python port