【问题标题】:Dynamic row length in a QGridLayoutQGridLayout 中的动态行长
【发布时间】:2014-07-15 16:49:23
【问题描述】:

我希望使用 PySide 和 Qt 制作一个图像查看器,其中所有图像都是固定大小并排列在网格中。我知道如何通过定义QGridLayout 来设置基本代码,例如:

l = QGridLayout(10,10)
l.addItem(im1,0,0)
l.addItem(im2,0,1)
...

但是,我还希望每行的元素数量能够动态调整大小。我会提前知道有多少张图片,但我不知道对话框会有多大。因此,如果用户使对话框非常小,则每行应该有 2 个图像,但如果他们最大化它,则应该(例如)每行 10 个图像。有没有办法制作一个动态调整行大小的QGridLayout

【问题讨论】:

    标签: qt layout pyside


    【解决方案1】:

    您不需要为此使用QGridLayout,而是使用FlowLayout。 FlowLayout 不是 Qt 中的内置布局,而是由其他人开发的,您只需将 FlowLayout 类复制到您的项目文件即可使用它。 thisFlowLayout 的示例。将整个代码复制到您的 IDE 并运行它(请记住将顶部的导入语句更改为 PySide,因为该代码使用的是 PyQt4)。执行代码后,调整出现的窗口大小,会看到窗口内的按钮会自动调整。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2017-09-29
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多