Qt GUI:水平布局的 groupBox 中的东西未对齐
Qt GUI : misaligned things in groupBox with horizontal Layout
很简单:
Ui 文件:
结果:
"Scans to display" 是一个水平布局的 groupBox,它包含两个元素:
- 左侧,带有三个单选按钮的垂直布局。
- 对,一个空的分组框。
一条红线(在屏幕截图上手动添加)标记了 "Scans to display" 组框中这两个元素之间的错位。
注意:右侧的空 groupBox 在启动时会自动填充带编号的复选框,其编号只有在那时才知道。
这是怎么回事?我该怎么办?
PS:在右侧的空组框内创建一些复选框的代码:
m_historyButtons[i] = new QCheckBox();
m_historyButtons[i]->setText(QString::number(i));
m_historyButtons[i]->setObjectName(QString("m_pbDisplayEntry%1").arg(i));
QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(true);
m_historyButtons[i]->setSizePolicy(sizePolicy);
((QGridLayout*)(ui.m_groupBoxHistoryEntries->layout()))->addWidget(m_historyButtons[i], i/m_grid_width, i%m_grid_width);
Qt 组框在框架外的顶部为组框标题留出一些空间。为避免这种情况,如果您不需要标题,请改用 QFrame。框架内新创建的复选框将保持相互排斥的行为。
很简单:
Ui 文件:
结果:
"Scans to display" 是一个水平布局的 groupBox,它包含两个元素:
- 左侧,带有三个单选按钮的垂直布局。
- 对,一个空的分组框。
一条红线(在屏幕截图上手动添加)标记了 "Scans to display" 组框中这两个元素之间的错位。
注意:右侧的空 groupBox 在启动时会自动填充带编号的复选框,其编号只有在那时才知道。
这是怎么回事?我该怎么办?
PS:在右侧的空组框内创建一些复选框的代码:
m_historyButtons[i] = new QCheckBox();
m_historyButtons[i]->setText(QString::number(i));
m_historyButtons[i]->setObjectName(QString("m_pbDisplayEntry%1").arg(i));
QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(true);
m_historyButtons[i]->setSizePolicy(sizePolicy);
((QGridLayout*)(ui.m_groupBoxHistoryEntries->layout()))->addWidget(m_historyButtons[i], i/m_grid_width, i%m_grid_width);
Qt 组框在框架外的顶部为组框标题留出一些空间。为避免这种情况,如果您不需要标题,请改用 QFrame。框架内新创建的复选框将保持相互排斥的行为。