Qt分组框示例

分组框示例展示了如何在Qt中使用不同类型的分组框。

分组框是容器小组件,用于在逻辑上和屏幕上将按钮组织成组。它们管理用户和应用程序之间的交互,因此您不必强制实施简单的约束。

分组框通常用于将复选框和单选按钮组织到独占组中。

组框示例由一个用于显示四个组框的类组成:独占单选按钮组、非独占复选框组、具有启用复选框的独占单选按钮组和具有普通按钮的组框。Window

窗口类定义

该类是用于显示多个组框的子类。类定义包含用于构造每个分组框并使用不同选择的按钮小部件填充它的函数:WindowQWidget

<span style="color:#404244"><span style="background-color:#3a4055"><span style="color:#ffffff"><span style="color:#ffff55">class</span> <span style="color:#4f9d08">Window</span> <span style="color:#ffffff">:</span> <span style="color:#ffff55">public</span> <a data-cke-saved-href="https://doc.qt.io/qt-6/qwidget.html" href="https://doc.qt.io/qt-6/qwidget.html"><span style="color:#21be2b">QWidget</span></a>
<span style="color:#ffffff">{</span><span style="color:#ffffff">
    Q_OBJECT

</span><span style="color:#ffff55">public</span><span style="color:#ffffff">:</span>
    <span style="color:#4f9d08">Window</span><span style="color:#ffffff">(</span><a data-cke-saved-href="https://doc.qt.io/qt-6/qwidget.html" href="https://doc.qt.io/qt-6/qwidget.html"><span style="color:#21be2b">QWidget</span></a> <span style="color:#ffffff">*</span><span style="color:#ffffff">parent </span><span style="color:#ffffff">=</span> <span style="color:#ffff55">nullptr</span><span style="color:#ffffff">);</span>

<span style="color:#ffff55">private</span><span style="color:#ffffff">:</span>
    <a data-cke-saved-href="https://doc.qt.io/qt-6/qgroupbox.html" href="https://doc.qt.io/qt-6/qgroupbox.html"><span style="color:#21be2b">QGroupBox</span></a> <span style="color:#ffffff">*</span><span style="color:#ffffff">createFirstExclusiveGroup</span><span style="color:#ffffff">();</span>
    <a data-cke-saved-href="https://doc.qt.io/qt-6/qgroupbox.html" href="https://doc.qt.io/qt-6/qgroupbox.html"><span style="color:#21be2b">QGroupBox</span></a> <span style="color:#ffffff">*</span><span style="color:#ffffff">createSecondExclusiveGroup</span><span style="color:#ffffff">();</span>
    <a data-cke-saved-href="https://doc.qt.io/qt-6/qgroupbox.html" href="https://doc.qt.io/qt-6/qgroupbox.html"><span style="color:#21be2b">QGroupBox</span></a> <span style="color:#ffffff">*</span><span style="color:#ffffff">createNonExclusiveGroup</span><span style="color:#ffffff">();</span>
    <a data-cke-saved-href="https://doc.qt.io/qt-6/qgroupbox.html" href="https://doc.qt.io/qt-6/qgroupbox.html"><span style="color:#21be2b">QGroupBox</span></a> <span style="color:#ffffff">*</span><span style="color:#ffffff">createPushButtonGroup</span><span style="color:#ffffff">();</span>
<span style="color:#ffffff">};</span></span></span></span>

在示例中,小部件将用作顶级窗口,因此定义了构造函数,以便我们不必指定父小部件。

窗口类实现

构造函数创建一个网格布局,并用要显示的每个分组框填充它:

<span style="color:#404244"><span style="background-color:#3a4055"><span style="color:#ffffff"><span style="color:#4f9d08">Window</span><span style="color:#ffffff">::</span><span style="color:#4f9d08">Window</span><span style="color:#ffffff">(</span><a data-cke-saved-href="https://doc.qt.io/qt-6/qwidget.html" href="https://doc.qt.io/qt-6/qwidget.html"><span style="color:#21be2b">QWidget</span></a> <span style="color:#ffffff">*</span><span style="color:#ffffff">parent</span><span style="color:#ffffff">)</span>
    <span style="color:#ffffff">:</span> <a data-cke-saved-href="https://doc.qt.io/qt-6/qwidget.html" href="https://doc.qt.io/qt-6/qwidget.html"><span style="color:#21be2b">QWidget</span></a><span style="color:#ffffff">(</span><span style="color:#ffffff">parent</span><span style="color:#ffffff">)</span>
<span style="color:#ffffff">{</span>
    <a data-cke-saved-href="https://doc.qt.io/qt-6/qgridlayout.html" href="https://doc.qt.io/qt-6/qgridlayout.html"><span style="color:#21be2b">QGridLayout</span></a> <span style="color:#ffffff">*</span><span style="color:#ffffff">grid </span><span style="color:#ffffff">=</span> <span style="color:#ffff55">new</span> <a data-cke-saved-href="https://doc.qt.io/qt-6/qgridlayout.html" href="https://doc.qt.io/qt-6/qgridlayout.html"><span style="color:#21be2b">QGridLayout</span></a><span style="color:#ffffff">;</span><span style="color:#ffffff">
    grid</span><span style="color:#ffffff">-</span><span style="color:#ffffff">></span><span style="color:#ffffff">addWidget</span><span style="color:#ffffff">(</span><span style="color:#ffffff">createFirstExclusiveGroup</span><span style="color:#ffffff">()</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">0</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">0</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
    grid</span><span style="color:#ffffff">-</span><span style="color:#ffffff">></span><span style="color:#ffffff">addWidget</span><span style="color:#ffffff">(</span><span style="color:#ffffff">createSecondExclusiveGroup</span><span style="color:#ffffff">()</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">1</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">0</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
    grid</span><span style="color:#ffffff">-</span><span style="color:#ffffff">></span><span style="color:#ffffff">addWidget</span><span style="color:#ffffff">(</span><span style="color:#ffffff">createNonExclusiveGroup</span><span style="color:#ffffff">()</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">0</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">1</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
    grid</span><span style="color:#ffffff">-</span><span style="color:#ffffff">></span><span style="color:#ffffff">addWidget</span><span style="color:#ffffff">(</span><span style="color:#ffffff">createPushButtonGroup</span><span style="color:#ffffff">()</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">1</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">1</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
    setLayout</span><span style="color:#ffffff">(</span><span style="color:#ffffff">grid</span><span style="color:#ffffff">);</span><span style="color:#ffffff">

    setWindowTitle</span><span style="color:#ffffff">(</span><span style="color:#ffffff">tr</span><span style="color:#ffffff">(</span><span style="color:#aaaaaa">"Group Boxes"</span><span style="color:#ffffff">));</span><span style="color:#ffffff">
    resize</span><span style="color:#ffffff">(</span><span style="color:#ff55ff">480</span><span style="color:#ffffff">,</span> <span style="color:#ff55ff">320</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">}</span></span></span></span>

用于创建每个分组框的函数都返回要插入到网格布局中的 a。

<span style="color:#404244"><span style="background-color:#3a4055"><span style="color:#ffffff"><a data-cke-saved-href="https://doc.qt.io/qt-6/qgroupbox.html" href="https://doc.qt.io/qt-6/qgroupbox.html"><span style="color:#21be2b">QGroupBox</span></a> <span style="color:#ffffff">*</span><span style="color:#4f9d08">Window</span><span style="color:#ffffff">::</span><span style="color:#ffffff">createFirstExclusiveGroup</span><span style="color:#ffffff">()</span>
<span style="color:#ffffff">{</span>
    <a data-cke-saved-href="https://doc.qt.io/qt-6/qgroupbox.ht
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亭台六七座

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值