gpt4 book ai didi

qt - QGridLayout 中包含在多个单元格中的小部件未居中

转载 作者:行者123 更新时间:2023-12-04 12:52:10 27 4
gpt4 key购买 nike

问题说明了一切。

我有一个 5 x 3 的网格。

看起来像这样

row 0:  buttonA--buttonA--buttonA   nothing   buttonB--buttonB--buttonB

row 1: empty row

row 2: buttonC nothing buttonD nothing buttonE nothing buttonF

在整个列或行中没有任何内容的空间中,minimumRowHeight 和所有这些设置都将起作用。对?

好。按钮 A 和按钮 B(以及其他按钮)永远不会以它们共享的 3 个单元格为中心。绝不。我在布局参数上写了什么并不重要。

我删除了代码,因为它最终使用垂直布局和内部两个水平布局得到它。那些以这种方式居中。但我想更好地定位它们。

添加小部件时不起作用,使用:

addWidget( widget, 0,0 , 2,0 , Qt::AlignHCenter );甚至 AlignCenter 都不起作用。

如何使其居中或向右对齐?

谢谢!

最佳答案

QGridLayout::addWidget() 的语法是这样的:

void QGridLayout::addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )



与描述:

This version adds the given widget to the cell grid, spanning multiple rows/columns. The cell will start at fromRow, fromColumn spanning rowSpan rows and columnSpan columns.



这意味着你的线路
addWidget( widget, 0, 0, 2, 0, Qt::AlignHCenter ); 

fromRow = 0 , fromColumn = 0 , rowSpan = 2columnSpan = 0 .这意味着它从第 0 行开始并跨越两行,即它将位于第 0 行和第 1 行(注意:总共两行,而不是另外两行)。它也从第 0 列开始,跨度为 0,我认为这意味着列跨度被忽略。

所以你真正想要的应该是:
addWidget( widget, 0, 0, 0, 3, Qt::AlignCenter );

您可能需要稍微尝试一下对齐方式。

关于qt - QGridLayout 中包含在多个单元格中的小部件未居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com