【问题标题】:Items in QGridLayout won't wrapQGridLayout 中的项目不会换行
【发布时间】:2020-08-10 19:09:06
【问题描述】:

我在 QML 中创建了一个简单的 GridLayout,并在网格中添加了 10 个按钮。网格布局锚定到父级。我为每个按钮设置了 Layout.minimumWidth 和 Layout.maximumWidth。

我期待当我调整窗口大小时,GridLayout 会包裹我的按钮,这样我每次只能看到一行中可以均匀地放在一行中的按钮数量(基于上面设置的最小/最大宽度) ,并且行数会随着列数的减少而增加(基于窗口大小)

当我遇到的是按钮无休止地向右移动时,调整窗口大小只会裁剪显示的按钮数量。

我怀疑我误解了什么。这不是 GridLayout 的目的 - 包装最好的项目以保持列整齐地显示在视图中吗?如果是这样,为什么这不起作用?

【问题讨论】:

  • 不,QGridLayout 不是这样工作的。相反,您可能想看看flow layout example
  • 由于我希望将项目堆叠成列,随着窗口大小的调整而换行,我可以结合 Flow Layout 来实现这一点吗?

标签: qt qml grid-layout


【解决方案1】:

正如 G.M. 所说。 GridLayout 不会自动重新计算列数。

最好/最简单的解决方案是根据您的Layout.minimumWidth(伪代码)手动计算所需的列数:

GridLayout
{
  ...
  column: width_cell / width_grid
  ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2021-12-29
    • 2012-12-11
    • 1970-01-01
    • 2014-07-15
    相关资源
    最近更新 更多