采用动态列数进行网格布局的最佳方法是什么?我希望它改变窗口大小时的行数和列数,而不是简单地调整每个单元格的大小并使结构保持不变。我在用于光栅图形编辑器的调色板小部件中使用它,以防信息可能有所帮助。自从我与QtDesigner合作以来,我身上没有任何代码,尽管我应该提到网格将位于QDockWidget中。
编辑:我的解释有点不清楚,让我再试一次。它应该像文本一样工作-在网格开始的某个点,比方说窗口的左上角。这些按钮一个接一个地放置,它们之间有一定数量的像素,例如4。当一个按钮碰到窗口的右边界并超出范围时,它将移至下一行。当第二行填满后,将创建一个新的,依此类推。最后一行不必是完整的。
因此,如果我有一个400 x 400像素的窗口和16个按钮,每个按钮都是100 x 100像素的正方形,它们将形成一个4x4的正方形网格(在此示例中,我不考虑按钮之间的距离)。如果将窗口大小调整为800 x 200px,结构将更改为2x8(两行,每行8个按钮),如果将窗口大小调整为1600 x 100px,网格将更改为单列的16个按钮。
如果我的解释仍不清楚,则现有示例就是Photoshop处理其色板的方式。
17x8的网格(最后一行不完整)
同一网格的大小调整为13x10(最后一行不完整)