当前位置: 首页 > news >正文

Qt:QPushButton、QRadioButton、QCheckBox

目录

一、QPushButton

1.认识QPushButton

2.设置按钮图标

3.设置按钮的快捷键

二、QRadioButton

常用的信号

按钮的分组

三、QCheckBox


一、QPushButton

1.认识QPushButton

QPushButton继承自QWidget,所以在上一篇文章中介绍的QWidget的属性,理论上都是可以使用的。

严格来说,QPushButton并不是直接继承QWidget,而是QAbstractButton,这个类是一个抽象类,即接口类,包含了纯虚函数。

在QAbstractButton中,和QPushtButton关联较大的属性如下。

2.设置按钮图标

    QIcon icon(":/LInux.jpg");ui->pushButton->setIcon(icon);//QSize q(100,100);ui->pushButton->setIconSize(q);

3.设置按钮的快捷键

    //设置快捷键//方法一:直接写出按键的名称,容易出错ui->pushButton->setShortcut(QKeySequence("w"));//方法二:使用Qt内置的快捷键枚举ui->pushButton->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_A));

此外,我们知道在FPS游戏中,可以长按鼠标左键连发,相应的,对于一个按钮,是否可以长按鼠标左键来连击,并且默认情况下,按住键盘不松手,默认就是连续点击,那么可以设置鼠标的长按触发连击吗

//设置鼠标连击
ui->pushButton->setAutoRepeat(true);

二、QRadioButton

单选按钮,用来在多个选项中选择一个。

在QAbstractButton中,和QRadioButton关联较大的属性如下。

//让一个选项被选中
ui->radioButton->setChecked(true);
//
ui->radioButton->setCheckable(false);
//设置按钮不能被选中,但是按钮还是会响应执行槽函数。
故可以设置为
ui->radioButton->setEnabled(false);

常用的信号

void Widget::on_radioButton_clicked(bool checked)
{//checked表示按钮被选中,被选中时点击按钮,触发该信号qDebug() << "checked"<<checked;
}void Widget::on_radioButton_2_pressed()
{//pressed表示按下了按钮,但没有松开qDebug() << "pressed";
}void Widget::on_radioButton_3_released()
{//released表示松开按住的按钮qDebug() << "released";
}void Widget::on_radioButton_4_toggled(bool checked)
{//toggled表示切换状态时的信号qDebug() << "toggled" << checked;
}

按钮的分组

部分场景下,要对按钮分组,否则所有按钮之间都存在排他关系。而实际需求是让组和组之间不存在排他关系。

三、QCheckBox

QCheckBox表示复选按钮,可以允许选中多个。

和QCheckBox相关的属性也是checkable和checked, 都是继承自QAbstractButton,至于QCheckBox独有的属性tristate用来实现“三态复选框”,比较冷门,不作介绍。

代码举例


void Widget::on_pushButton_clicked()
{QString res = "今天的任务是:";if(ui->checkBox->isChecked()){res += ui->checkBox->text() + "、";}if(ui->checkBox_2->isChecked()){res += ui->checkBox_2->text() + "、";}if(ui->checkBox_3->isChecked()){res += ui->checkBox_3->text();}ui->label->setText(res);
}

http://www.dtcms.com/a/268069.html

相关文章:

  • 数据结构:数组:反转数组(Reverse the Array)
  • SQL Server从入门到项目实践(超值版)读书笔记 20
  • 二进制安全-汇编语言-02-寄存器
  • CPT208-Human-Centric Computing: Field Study and Analytics实地研究与分析
  • 【网络安全基础】第六章---Web安全需求
  • 小菜狗的云计算之旅,学习了解rsync+sersync实现数据实时同步(详细操作步骤)
  • QML 使用QtObject定义私有变量
  • 基于springboot的社区生鲜团购系统
  • 数据结构---B+树
  • 高效管理UI控件:PyQt5容器控件深度解析
  • 黑马python(二十六)
  • python通过openai接口与配置文件.env使用通义千问API
  • EPLAN 电气制图:建立自己的部件库,添加部件(三)下
  • vue3.4中的v-model的用法~
  • 深度学习 必然用到的 线性代数知识
  • HarmonyOS学习4 --- 创建一个页面
  • 多模态偏好数据集生成与混合偏好优化(MPO)方法
  • 计算机网络1.1:什么是Internet?
  • 自定义指令
  • 一条 SQL 语句的内部执行流程详解(MySQL为例)
  • 进程控制中URL攻击与修复方法
  • ether0 大语言推理模型生成SMILES 的分子
  • java并发编程--可见性、原子性、有序性
  • 进程终止:exit()与_exit()深度解析
  • 模块化汽车基础设施的正面交锋---区域架构与域架构
  • 电信、移动、联通、广电跨运营商网速慢原因
  • QML与C++交互之QML端信号绑定C++端槽函数
  • uniapp实现的多种时间线模板
  • jmm,`as - if - serial` 与 `happens - before` 原则
  • Dubbo 3.x源码(31)—Dubbo消息的编码解码