QT C++(QT控件 QPushButton,QRadioButton,QCheckBox)

文章目录

  • 1. QPushButton 普通按钮
  • 2. QRadioButton 单选按钮
  • 3. QCheckBox 复选按钮

1. QPushButton 普通按钮

QPushButton中的重要属性

  1. text:按钮中的文本
  2. icon:按钮的图标
  3. iconSize:按钮中图标的尺寸
  4. shortCut:按钮对应的快捷键,可以直接通过案件名字设置,也可以通过按键枚举设置
  5. autoRepeat:按钮是否能连续触发
  6. autoRepeatDelay:触发的延时时长
  7. autoRepeatInterval:重复触发周期

属性修改案例代码:
QKeySequece:按下的快捷键队列,因为快捷键不只是一个

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
//    创建图标对象
//    QIcon icon(":/test.jpg");//设置目标  按钮图标ui->pushButton->setIcon(QIcon(":/test.jpg"));//设置图标尺寸,单位是像素ui->pushButton->setIconSize(QSize(50,50));ui->up->setIcon(QIcon(":up.png"));ui->up->setIconSize(QSize(60,60));ui->down->setIcon(QIcon(":down.png"));ui->down->setIconSize(QSize(60,60));ui->left->setIcon(QIcon(":left.png"));ui->left->setIconSize(QSize(60,60));ui->right->setIcon(QIcon(":right.png"));ui->right->setIconSize(QSize(60,60));//设置按钮快捷键ui->up->setShortcut(QKeySequence("w"));ui->left->setShortcut(QKeySequence("a"));//组合键
//    ui->down->setShortcut(QKeySequence("s"));
//    ui->right->setShortcut(QKeySequence("d"));ui->down->setShortcut(QKeySequence(Qt::Key_S));ui->right->setShortcut(QKeySequence("d"));
//    ui->right->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D));//组合快捷键//设置按钮连续触发(键盘快捷键默认支持连续触发,鼠标不支持)ui->up->setAutoRepeat(true);
}Widget::~Widget()
{delete ui;
}void Widget::on_up_clicked()
{//获取目标按钮当前位置QRect rect=ui->pushButton->geometry();//更新按钮位置信息ui->pushButton->setGeometry(rect.x(),rect.y()-5,rect.width(),rect.height());
}void Widget::on_down_clicked()
{//获取目标按钮当前位置QRect rect=ui->pushButton->geometry();//更新按钮位置信息ui->pushButton->setGeometry(rect.x(),rect.y()+5,rect.width(),rect.height());
}void Widget::on_left_clicked()
{//获取目标按钮当前位置QRect rect=ui->pushButton->geometry();//更新按钮位置信息ui->pushButton->setGeometry(rect.x()-5,rect.y(),rect.width(),rect.height());
}void Widget::on_right_clicked()
{//获取目标按钮当前位置QRect rect=ui->pushButton->geometry();//更新按钮位置信息ui->pushButton->setGeometry(rect.x()+5,rect.y(),rect.width(),rect.height());
}

2. QRadioButton 单选按钮

QRadioButton常见属性:

  1. checkable:是否能选中
  2. checked:是否已经选中,checkable是checked的前提
  3. autoExclusive:是否排他,选中一个按钮会取消其他按钮的选中,QRadioButton默认排他。

测试代码:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//修改默认选项ui->secret->setChecked(true);ui->label->setText("默认未知");//错误单选框不被选中,但是可以响应事件的ui->wrong->setCheckable(false);//设置为不响应任何事件(灰色)ui->wrong->setDisabled(true);
}Widget::~Widget()
{delete ui;
}void Widget::on_man_clicked()
{//修改界面上的label标签ui->label->setText("选择男");
}void Widget::on_woman_clicked()
{ui->label->setText("选择女");
}void Widget::on_secret_clicked()
{ui->label->setText("未知");
}

QRadioButton特殊信号

  1. clecked(bool checked):checked为单选按钮是否选中
  2. pressed:单选按钮按下时响应
  3. release:单选按钮松开时响应
  4. toggled(bool checked):checked状态改变时触发此信号

测试代码:

void Widget::on_radioButton_clicked(bool checked)
{qDebug()<<"clicked:"<<checked;
}void Widget::on_radioButton_pressed()
{qDebug()<<"pressed";
}void Widget::on_radioButton_released()
{qDebug()<<"release";
}void Widget::on_radioButton_toggled(bool checked)
{qDebug()<<"toggled:"<<checked;
}

首次点击bool时运行截图如下:
在这里插入图片描述
QRadioButton设置非排他方式,使用QButtonGroup对不同的RadioButton分组,不同组之间不排他。但是组之间是排他的

#include "widget.h"
#include "ui_widget.h"
#include <QButtonGroup>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//创建分组QButtonGroup*one=new QButtonGroup(this);QButtonGroup*two=new QButtonGroup(this);QButtonGroup*three=new QButtonGroup(this);//将单选按钮放到不同组one->addButton(ui->radio1);one->addButton(ui->radio2);one->addButton(ui->radio3);two->addButton(ui->radio4);two->addButton(ui->radio5);two->addButton(ui->radio6);three->addButton(ui->radio7);three->addButton(ui->radio8);
}Widget::~Widget()
{delete ui;
}

3. QCheckBox 复选按钮

QCheckBox的相关属性和QRadioButton相同。checked,checkable用法和上文一致不在赘述。

不同的复选按钮不冲突

使用案例:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{QString str="兴趣爱好:";if(ui->checkBox->isChecked()){str+=ui->checkBox->text();}if(ui->checkBox_2->isChecked()){str+=ui->checkBox_2->text();}if(ui->checkBox_3->isChecked()){str+=ui->checkBox_3->text();}ui->label->setText(str);
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity3d使用3D WebView for Windows and macOS打开全景网页(720云)操作问题记录

问题描述 使用Unity3d内嵌网页的形式打开720云中的全景图这个功能&#xff0c;使用的是3D WebView for Windows and macOS插件&#xff0c;720云的全景图在浏览器上的操作是滑动鼠标滚轮推远/拉近全景图&#xff0c;鼠标左键拖拽网页可以旋转全景图内容。网页的打开过程是正常…

IDEA创建Mybatis项目

IDEA创建Mybatis项目 第一步&#xff1a;创建库表 -- 创建数据库 create database mybatis_db;-- 使用数据库 use mybatis_db;-- 创建user表 CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL,email VARC…

transformer中对于QKV的个人理解

目录 1、向量点乘 2、相似度计算举例 3、QKV分析 4、整体流程 (1) 首先从词向量到Q、K、V (2) 计算Q*&#xff08;K的转置&#xff09;&#xff0c;并归一化之后进行softmax (3) 使用刚得到的权重矩阵&#xff0c;与V相乘&#xff0c;计算加权求和。 5、多头注意力 上面…

记一次postgresql拼接函数string_agg() 和row_number() 使用

PG两个函数使用需求和简单介绍 需求背景介绍第一个需求背景是这样的需求升级一下接下来讲讲STRING_AGG()基本语法排序 然后我们再说说ROW_NUMBER()基本语法使用 row_number() over (partition by) 进行分组统计使用 row_num限定每组数量 需求背景介绍 第一个需求背景是这样的 …

【MATLAB源码-第222期】基于matlab的改进蚁群算法三维栅格地图路径规划,加入精英蚁群策略。包括起点终点,障碍物,着火点,楼梯。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蚁群算法&#xff08;Ant Colony Optimization&#xff0c;ACO&#xff09;是一种通过模拟蚂蚁觅食行为的启发式优化算法。它由意大利学者Marco Dorigo在20世纪90年代初提出&#xff0c;最初用于解决旅行商问题&#xff08;T…

从《千脑智能》看大模型

千脑智能与大模型 千脑智能介绍 世界模型千脑智能理论——对大脑的全新理解旧大脑&#xff1a;演化的历史烙印新大脑&#xff1a;智慧的创新引擎新旧大脑的互动与争斗启示与借鉴 大脑对信息的处理和建模六根六尘六识 新脑&#xff1a;智能的创新中枢旧脑&#xff1a;生存的本能…

Spring的Controller是单例还是多例,如何保证线程安全的。

目录 验证是否单例&#xff08;默认单例&#xff09; 多例测试 单例对象成员变量测试 多例对象成员变量测试 解决方案 结论&#xff1a; 补充说明 答案&#xff1a;controller默认是单例的&#xff0c;不要使用非静态的成员变量&#xff0c;否则会发生数据逻辑混乱。 正…

求宇文玥在水下的浮力和赵丽颖捞他的时间

关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业分析/数据结构与算法学习资料 2024年汉东省在达康书记的带领下率先实现高考试点改革。为让更多的考生能提升对他们的理解和记忆&#xff0c;把电视剧的场景融入考试题目中。确保学生看一遍就懂&#xff0c;想…

STM32 proteus + STM32Cubemx仿真教程(第一课LED教程)

文章目录 前言一、STM32点亮LED灯的原理1.1GPIO是什么1.2点亮LED灯的原理 二、STM32Cubemx创建工程三、proteus仿真电路图四、程序代码编写1.LED灯操作函数介绍HAL_GPIO_WritePin函数原型参数说明示例代码 HAL_GPIO_TogglePin函数原型参数说明示例代码 2.代码编写3.烧写程序 总…

(三)React事件

1. React基础事件绑定 语法&#xff1a; on 事件名称 { 事件处理程序 }&#xff0c;整体上遵循驼峰命名法 App.js //项目根组件 //App -> index.js -> public/index.html(root)function App() {const handleClick () > {console.log(button被点击了)}return (<…

k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA详细解释与安装

文章目录 前言VPA简介简单理解详细解释VPA的优缺点优点1.自动化资源管理2.资源优化3.性能和稳定性提升5.成本节约6.集成性和灵活性 缺点1.Pod 重启影响可用性2.与 HPA 冲突3.资源监控和推荐滞后&#xff1a;4.实现复杂度&#xff1a; 核心概念Resource Requests 和 Limits自动调…

AI大模型学习(非常详细)零基础入门到精通,收藏这一篇就够了

前言 随着人工智能技术的快速发展&#xff0c;AI大模型学习正成为一项备受关注的研究领域。为了提高模型的准确性和效率&#xff0c;研究者们需要具备深厚的数学基础和编程能力&#xff0c;并对特定领域的业务场景有深入的了解。通过不断优化模型结构和算法&#xff0c;AI大模…

python如何输入回车

Python默认遇到回车的时候&#xff0c;输入结束。所以我们需要更改这个提示符&#xff0c;在遇到空行的时候&#xff0c;输入才结束。 raw_input就是从标注输入读取输入&#xff0c;输入的是什么就是什么。 文档解释&#xff1a; The function then reads a line from input,…

UFS协议入门-分层结构

写在前面:本文参考UFS jedec3.1,本文思维导图如下 1. 分层概述 UFS协议分为3层,从上至下分别是:应用层(UAP),传输层(UTP),互联层(UIC),具体结构如下图所示。 2.1 应用层 在应用层(UAP)中,包括:UFS指令集(UCS),设备管理器(Device Manager),任务管理器(Task Manager…

基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 fpga仿真结果 matlab调用FPGA的仿真结果进行图像显示 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 ......................…

Knife4j 生成 API 文档

文章目录 Knife4j 简介使用步骤Knife4j 常用注解的列表案例可能遇到报错 Knife4j 简介 Knife4j 是一个增强的 Swagger 文档生成工具&#xff0c;提供了更加友好的界面和更多功能&#xff0c;使得 API 文档更加美观且易于使用。它是基于 Spring Boot 和 Swagger 进行封装的&…

Xcode 安装17.5 simulator 总是失败

升级到xcode15.4后需要安装ios17.5模拟器 但是在下载过程中会遇到报错 : The network connection is lost 解决方案&#xff1a; 先将模拟器下载到本地 Xcode 安装17.5 simulator 下载地址&#xff1a; Sign In - Applhttps://developer.apple.com/download/all/?qXcode 下…

C# WPF入门学习主线篇(十五)—— DockPanel布局容器

C# WPF入门学习主线篇&#xff08;十五&#xff09;—— DockPanel布局容器 欢迎来到C# WPF入门学习系列的第十五篇。在前几篇文章中&#xff0c;我们探讨了 Canvas、StackPanel 和 WrapPanel 布局容器及其使用方法。本篇博客将介绍另一种强大且常用的布局容器——DockPanel。…

【计算机网络】P3 计算机网络协议、接口、服务的概念、区别以及计算机网络提供的三种服务方式

目录 协议什么是协议协议是水平存活的协议的组成 接口服务服务是什么服务原语 协议与服务的区别计算机网络提供的服务的三种方式面向连接服务与无连接服务可靠服务与不可靠服务有应答服务与无应答服务 协议 什么是协议 协议&#xff0c;就是规则的集合。 在计算机网络中&…