QT基础:QButtonGroup 按钮组的简单演示

这篇具有很好参考价值的文章主要介绍了QT基础:QButtonGroup 按钮组的简单演示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

QButtonGroup 是一个按钮组,就是将控件进行组合或分组的一个容器,但是它并不在设计师里面可以直接拉出来用

在使用 QButtonGroup 的时候需要引入一下 #include <QButtonGroup>

1、首先用QT创建一个 widget 项目 ,在 UI 中添加三个选择框

在.pro文件中加入一行 CONFIG += console 可以在运行的时候自动打开控制台

QT基础:QButtonGroup 按钮组的简单演示

 2、在 widget.cpp 中写入代码 

这里创建了两个槽函数,分别绑定 QButtonGroup 中的 buttonClicked 信号和 buttonToggled 信号

#include "widget.h"
#include "ui_widget.h"
#include <QButtonGroup>
#include <QDebug>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    QButtonGroup *group = new QButtonGroup(this);
    // 将UI中创建好的选择框全部加入按钮组
    group->addButton(ui->checkBox1);
    group->addButton(ui->checkBox2);
    group->addButton(ui->checkBox3);

    // 选择框加入按钮组以后会默认变成单选  ,在这里可以改成多选
    group->setExclusive(false);


    // 链接创建好的槽函数
    QObject::connect(group,SIGNAL(buttonClicked(QAbstractButton*)),this,SLOT(Click(QAbstractButton*)));
    QObject::connect(group,SIGNAL(buttonToggled(QAbstractButton*,bool)),this,SLOT(Toggl(QAbstractButton*,bool)));

}

void Widget::Click(QAbstractButton * but)
{
    // 打印按钮组中被点击的选择框
    qDebug() << "按钮组被点击:" << but << but->isChecked();
}

void Widget::Toggl(QAbstractButton * but, bool check)
{
    // 打印按钮组中被触发的选择框
    qDebug() << "按钮组被触发:" << but << check;
}

Widget::~Widget()
{
    delete ui;
}

3、在选择框是多选的情况下的演示效果:

可以看到,在选中或者取消选中任意一个选择框的时候,都能触发一次 按钮组的 buttonClicked 和 buttonToggled 信号

QT基础:QButtonGroup 按钮组的简单演示

 

4、// group->setExclusive(false); 把这行注释掉,在选择框是单选的情况下的演示效果:

       可以看到,

选中一个选择框的时候,可以触发按钮组的 buttonClicked 和 buttonToggled 信号

再去选中另一个选择框的时候,第一个选择框的 buttonToggled 的信号又被触发了一次

点击已经选中的选择框的时候,可以单独触发 buttonToggled 信号

QT基础:QButtonGroup 按钮组的简单演示

 关于 QButtonGroup  的一些信号:
buttonClicked(QAbstractButton *button)
buttonClicked(int id)
buttonPressed(QAbstractButton *button)
buttonPressed(int id)
buttonReleased(QAbstractButton *button)
buttonReleased(int id)
buttonToggled(QAbstractButton *button, bool checked)
buttonToggled(int id, bool checked)
 文章来源地址https://www.toymoban.com/news/detail-497067.html

到了这里,关于QT基础:QButtonGroup 按钮组的简单演示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2.1Qt基础按钮控件

    QT Creator UI 设计界面的按钮组截图如下: 以下是对按钮组控件的一些功能介绍: Push Button 按压按钮:最普通的按钮,按(点击)按钮命令计算机执行一些动作,或者回答问题,比如 windows 开始菜单里的重启,注销,关机等按钮。 Tool Button 工具按钮:工具按钮通常是一个集合,一

    2024年02月06日
    浏览(44)
  • Qt应用开发(基础篇)——工具按钮类 QToolButton

            QToolButton 类继承于 QAbstractButton ,该部件为命令或选项提供了一个快速访问按钮,通常用于 QToolBar 中。         按钮基类 QAbstractButton          QToolButton 是一个特殊的按钮,一般显示文本,只显示图标,结合toolBar使用。它提供对特定命令或选项的快速访问,

    2024年02月09日
    浏览(56)
  • QT 子窗体关闭或按钮返回父窗体(零基础保姆级)

    功能 父窗体点击按钮打开子窗体并隐藏父窗体,子窗体点击返回按钮或者关闭按钮后销毁自己并返回父窗体 效果展示 打开uidesigner 设计父窗体ui 建立子窗体 设计子窗体UI “subwidget.h” “subwidget.cpp” “widget.h” “widget.cpp”

    2024年02月11日
    浏览(37)
  • C++学习之路(七)C++ 实现简单的Qt界面(消息弹框、按钮点击事件监听)- 示例代码拆分讲解

    这个示例创建了一个主窗口,其中包含两个按钮。第一个按钮点击时会显示一个简单的消息框,第二个按钮点击时会执行一个特定的操作(在这个例子中,仅打印一条调试信息)。 功能描述: 创建窗口和布局: 使用 QWidget 和 QVBoxLayout 创建主窗口并设置垂直布局,将按钮放置

    2024年02月04日
    浏览(68)
  • QT基础:event 函数重载、筛选鼠标按压事件、获取鼠标位置、右键显示菜单、修改鼠标样式功能演示

    这里演示的是QT基础,主要包含: event 函数重载、筛选鼠标按压事件、获取鼠标位置、右键显示菜单、修改鼠标样式等功能演示, 适合初学者食用 。 演示功能:点击鼠标左键、右键、中键、左右键同时点击,输出鼠标当前坐标;按下鼠标中键,鼠标样式被替换,按下鼠标左

    2024年02月09日
    浏览(48)
  • [QT基础]QT不同ui界面的简单切换(C++)

            window10,QT 5.11.1,语言c++         设计两个ui界面,能实现一个ui界面到另一个ui界面的跳转。 为了以防万一,如果是第一次使用qt创建ui界面可以参考以下博客 QT界面创建 1,代码思路         两个ui界面,使用一个按钮进行页面的切换,考虑到实际的应用场景,

    2024年02月03日
    浏览(42)
  • 《QT从基础到进阶·十六》QT实现客户端和服务端的简单交互

    QT版本:5.15.2 VS版本:2019 客户端程序主要包含三块:连接服务器,发送消息,关闭客户端 服务端程序主要包含三块:打开消息监听,接收消息并反馈,关闭服务端 1、先打开服务端监听功能 2、点击客户端connect连接服务端 3、在客户端输入消息点击send发送到服务端 4、在服务

    2024年02月03日
    浏览(36)
  • Qt学习笔记之二--创建一个简单的qt互动界面(超级无敌巨详细,0基础也能会,主打的就是图多,语句通俗)

      选择第一个选项,然后两个下一步------ 直到   这里要选择基类,我们选择Qwiget  至于为什么,可以看看我收藏的这篇博客QMainWindow和QWidget的区别_qwidget和qmainwindow_独行侠_阿涛的博客-CSDN博客 ok,创建完成后,我们使用快捷键Ctrl+R来运行一下,看看是否会弹出小窗口,弹出说

    2024年02月05日
    浏览(56)
  • 单例模式代码简单演示

    可以看到上面演示了一个简单的单例模式的代码设计,通过私有构造器+静态属性,对一个类的实例进行了全局访问限制,来确保项目中这个类对应的实例只会在堆内存中开辟一块空间 下面是main的方法调用演示 打印结果 可以看到两份内存地址是相同的,并且由于static,我们

    2024年04月29日
    浏览(32)
  • C#演示 简单通俗讲解死锁

    死锁是指多个进程(线程)互相等待对方释放资源的一种状态,从而导致它们都无法继续执行下去。也就是说,当两个或多个进程都在等待其他进程释放它们所需要的资源时,它们就会陷入死锁状态,无法继续执行。在死锁状态下,进程将永远等待对方释放资源,而无法完成

    2023年04月16日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包