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

【Qt开发】按钮类控件

目录

1,Push Button

2,Radio Buttion

3,Check Box


1,Push Button

        QPushButton 表示一个按钮,该类继承自 QAbstractButton。这个类是一个抽象类,是其他按钮的父类。

        QPushButton 重要的几个属性如下图。

        设置相关的属性时,在属性前面添加set并把属性的首字母大写即可。

// 设置图标50*50像素大小

QIcon icon(":/doge.png");

pushButton->setIcon(icon);

pushButton->setIconSize(QSize(50, 50));   

添加快捷键

        Qt 中使用 setShortcut 给按钮设置快捷键。参数是⼀个 QKeySequence 对象。表示一个按键序列,支持组合键(ctrl + c 这种)。

        QKeySequence 的构造函数参数,可以直接使用 "ctrl+c" 这样的按键名字符串表示,也可以使用预定义好的常量(形如 Qt::CTRL + Qt::Key_C、Qt::Key_W 等)表示。

.......

// 设置快捷键

ui->pushButton_up->setShortcut(QKeySequence("w"));

ui->pushButton_down->setShortcut(QKeySequence("s"));

ui->pushButton_left->setShortcut(QKeySequence("a"));

ui->pushButton_right->setShortcut(QKeySequence("d"));

// 设置快捷键也可以写作

// ui->pushButton_up->setShortcut(QKeySequence(Qt::Key_W));

// ui->pushButton_down->setShortcut(QKeySequence(Qt::Key_S));

// ui->pushButton_left->setShortcut(QKeySequence(Qt::Key_A));

// ui->pushButton_right->setShortcut(QKeySequence(Qt::Key_D));

        按键的好处除了方便外,默认情况下还是连发的(一直按住快捷键会一直触发效果),但鼠标不行。若鼠标想要连发,需要设置 autoRepeat。

// 开启连发功能

ui->pushButton_up->setAutoRepeat(true);

ui->pushButton_down->setAutoRepeat(true);

ui->pushButton_left->setAutoRepeat(true);

ui->pushButton_right->setAutoRepeat(true);

2,Radio Buttion

        QRadioButton 是单选按钮,可以让我们在多个选项中选择一个。

        作为 QAbstractButton 和 QWidget 的子类,上面介绍的属性和用法,对于 QRadioButton 同样适用。

// 添加一个默认的选项

ui->radioButton->setChecked(true);

ui->label->setText("您选择的性别为: 男");

// 禁用“其它”选项(注意: Checkable只能让按钮不被选中,但点击后,仍可以响应点击事件)

// ui->radioButton_3->setCheckable(false);

// 通过下面两种中的任一方式,点击按钮后将不会做任何处理

ui->radioButton_3->setEnabled(false);

// ui->radioButton_3->setDisabled(true);

        下面来认识一下几个重要的信号。这里通过槽函数来说明。

void Widget::on_radioButton_4_clicked(bool checked)

{

    // clicked(bool checked)信号中的checked参数表示当前radioButton_4是否被选中

    qDebug() << "clicked: " << checked;

}

void Widget::on_radioButton_3_pressed()

{

    qDebug() << "pressed"; // 鼠标按下信号。点击时就会触发该信号

}

void Widget::on_radioButton_released()

{

    qDebug() << "released"; // 鼠标松开信号。鼠标松开时就会触发该信号

}

void Widget::on_radioButton_2_toggled(bool checked)

{

    // toggled信号会在部件的状态发生切换时发射,并传递一个布尔值checked,表示该部件的新状态(选中或未选中)

    qDebug() << "toggled: " << checked;

}

        由于单选按钮具有排他性,所以多个按钮之中只能选择一个。Qt中提供了 QButtonGroup 类将按钮分组,不同组的按钮互不影响。分组后,不同组的按钮可以共同选择。

// 使用 QButtonGroup 对单选按钮进行分组

QButtonGroup* group1 = new QButtonGroup(this);

QButtonGroup* group2 = new QButtonGroup(this);

// 把单选按钮放到不同组里

group1->addButton(ui->radioButton1);

group1->addButton(ui->radioButton2);

group2->addButton(ui->radioButton3);

group2->addButton(ui->radioButton4);

3,Check Box

        QCheckBox 表示复选按钮,可以允许选中多个。它和 QCheckBox 最相关的属性也是 checkable 和 checked,都是继承自 QAbstractButton。用法跟上面一样,这里不再说明。


        Qt中还有一个常用的按钮 Tool Button。QToolButton 的大部分功能和 QPushButton 是一致的。但是 QToolButton 主要应用在工具栏、菜单等场景。这个暂时先不做说明,后面会详细介绍这块内容。

http://www.xdnf.cn/news/613801.html

相关文章:

  • 5.24 note
  • FFmpeg 安装包全攻略:gpl、lgpl、shared、master 区别详解
  • spring注解旁路问题讨论
  • 使用Python在PowerPoint中插入形状(Shape)
  • 技术文档的进阶之旅
  • 文章记单词 | 第107篇(六级)
  • 3par persona设置错误,linux I/O持续报错
  • mPLUG-Owl3图片描述
  • SQL实战之索引优化(单表、双表、三表、索引失效)
  • FFplay 播放原始数据
  • C++性能测试工具——sysprof的使用
  • 【AUTOSAR网络管理】T_NM_Timeout参数测试指南
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(4)
  • 强化学习鱼书(8)——DQN
  • Qt window frame + windowTitle + windowIcon属性(3)
  • Android11以上通过adb复制文件到内置存储让文件管理器可见
  • 实验13 数据库权限管理
  • 告别繁琐操作,一键批量发布!
  • Linux下MySQL的安装与使用
  • 开局插第一个眼侦查对方打野的动态
  • 人脸识别技术合规备案最新政策详解
  • 利用条件编译实现RTT可控的调试输出
  • 20250523-BUG-E1696:无法打开元数据文件“platform.winmd(已解决)
  • 写起来比较复杂的深搜题目
  • 差分数组一文全解析
  • Vue.js教学第十三章:深入解析Vuex,前端状态管理核心指南
  • 分布式事务之Seata
  • 根据YOLO数据集标签计算检测框内目标面积占比(YOLO7-10都适用)
  • Linux常用命令简介
  • 驱动开发学习20250523