【问题标题】:Qt GUI : misaligned things in groupBox with horizontal LayoutQt GUI:groupBox中水平布局的东西错位
【发布时间】:2019-02-10 12:46:38
【问题描述】:

很简单:

UI 文件:

结果:

“扫描显示”是一个水平布局的 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);

【问题讨论】:

  • 你想摆脱红线吗?你能告诉我们你用复选框填充框的代码吗?
  • 在某种程度上,是的,我想摆脱红线(我在屏幕截图上自己画的)。也就是说,如果我把它画在我想要的结果的截图上,我会找不到这样做的余地,因为我想让错位消失。
  • 啊好的,现在我明白了这个问题。那你能贴出相关代码吗?
  • 没有,都是通过 ui 文件 - 除了在空组内创建复选框。我所做的就是在 groupBox 的布局上添加小部件,并使用 MinimumExpanding 进行尺寸策略......请参阅编辑后的帖子。

标签: c++ qt layout qlayout qgroupbox


【解决方案1】:

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

【讨论】:

  • 然后使用什么样式来获得没有标题的组框的外观?
  • 不过就是这样,谢谢。我没想到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 2013-05-01
  • 2013-10-18
  • 1970-01-01
  • 2015-03-04
  • 2013-03-20
  • 1970-01-01
相关资源
最近更新 更多