Qt GUI:groupBox中的水平布局错位

问题描述 投票:1回答:1

非常简单 :

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);
c++ qt layout qlayout qgroupbox
1个回答
4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.