Qt GUI:groupBox中具有水平布局的东西未对齐

时间:2018-09-05 11:24:33

标签: c++ qt layout qlayout qgroupbox

非常简单:

Ui文件: enter image description here

结果: enter image description here

“扫描以显示”是一个水平布局的groupBox,其中包含两个元素:

  • 左,具有三个单选按钮的垂直布局。
  • 对,一个空的组框。

红线(在屏幕截图上手动添加)标记了“扫描以显示”组框中的这两个元素之间的未对准。

值得注意的是:启动时,右边的空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);

1 个答案:

答案 0 :(得分:4)

Qt分组框在框架外部的顶部留出一些空间供分组框标题使用。为了避免这种情况,如果不需要字幕,请改用QFrame。框架内新创建的复选框将保持其相互排斥的行为。