当前位置: 首页 > 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.lryc.cn/news/581808.html

相关文章:

  • 1.1_4 计算机网络的分类
  • ARMv8 创建3级页表示例
  • QML与C++交互之QML端信号绑定C++端槽函数
  • Linux proxy设置
  • TensorFlow 开发中,合理的项目目录结构
  • 8.4.2_2堆的插入删除
  • [netty5: WebSocketClientHandshaker WebSocketClientHandshakerFactory]-源码分析
  • WSL2配置freesurfer
  • Docker Model Runner Chat
  • 嵌套容器是隐射宿主机的路径而不是容器的路径
  • 深入解析 document.write、innerHTML 和 innerText 的区别
  • 使用PyTorch实现Softmax回归(Mnist手写数字识别)
  • linux下进程之间socket通信c程序例程
  • 6、构建更加丰富的页面
  • Redis--主从复制详解
  • Linux操作系统之文件(五):文件系统(下)
  • 进程终止:exit()与_exit()深度解析
  • 【HarmonyOS】鸿蒙6 CodeGenie AI辅助编程工具详解
  • Linux-磁盘管理
  • electron中的IPC通信
  • python-if结构、三目运算符
  • 用.NET9+Blazor+Semantic Kernel,打造企业级AI知识库和智能体平台——AntSK深度解读
  • ZSGuardian ---AI赋能,新一代研发管理守护平台 -即将上线
  • 【openp2p】 学习4: 纳秒级别的时间同步算法及demo
  • 2025年中AI风暴:多模态突破、具身觉醒与科学新纪元
  • 等保测评-Apache Tomcat中间件
  • WHAT - 依赖管理工具 CocoaPods
  • Linux驱动学习day18(I2C设备ap3216c驱动编写)
  • Next.js面试常问内容详解
  • 深度特征提取在LIDC-IDRI数据集多分类任务中的优化细节