2012-02-02 152 views
3

我试图在缩略图模式下实现文件资源管理器这样的布局。这些项目位于它们之间具有固定距离的网格中,并且当您调整主窗口的大小时,项目将被重新定位以适合。Qt动态布局

例如,在一个小窗口中,您有:

 
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样式中。但是,这是一样的;在调整窗口大小后,您已经计算出新窗口中有多少项目,请清理表格并重新填充。

还有固定位置方法。你把物品放在固定的位置,并在每个窗口调整大小后移动它们......这是一个头痛的问题。

有没有人尝试类似的东西 - 一个资源管理器或图像浏览器?你是如何解决这个问题的?

回答

8

我认为你需要考虑做一些类似示例集合中的FlowLayout。请注意,它有一个python port

+0

是的,这正是我想要的!据我所知,它不能做得比这更简单... – 2012-02-02 18:38:42