Qt常用控件之按钮QPushButton

按钮QPushButton

QPushButton 在 Qt 中用于表示一个按钮控件,它继承自抽象 QAbstractButton 类。

QPushButton属性

属性说明
text按钮中的文本。
icon按钮中的图标。
iconSize按钮中图标的大小。
shortCut按钮对应的快捷键。
autoRepeat按钮是否会重复触发(即当按住按钮或快捷键不放时,是否持续触发事件, true 为按住重复触发, false 则反之)。
autoRepeatDelay重复触发的延时时间,按住按钮多久以后,开始重复触发事件。
autoRepeatInterval重复触发的周期。
default设置为按下 enter 时默认触发的按钮(一个窗口只能有一个默认按钮)。
autoDefault控制按钮是否能成为默认按钮。

在代码中对这些属性进行设置的接口,都是 set+属性名() 遵循小驼峰命名规则,如设置 text 属性的接口是 setText()

设置PushButton图片

通过 qrc 设置按钮图片。

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QIcon icon(":/jienigui.jpg");ui->pushButton->setIcon(icon);ui->pushButton->setIconSize(QSize(50,50));//设置图片显示尺寸
}Widget::~Widget()
{delete ui;
}

QPushButton1

设置按钮快捷键

Qt 提供了非常方便地设置按钮快捷键的接口。

可以通过 setShortcut() 成员函数设置快捷键,这里的 QkeySequence 使用匿名对象传参。

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->pushButton_up->setShortcut(QKeySequence("w"));ui->pushButton_down->setShortcut(QKeySequence("s"));ui->pushButton_left->setShortcut(QKeySequence("a"));ui->pushButton_right->setShortcut(QKeySequence("d"));
}Widget::~Widget()
{delete ui;
}

QPushButton2


但是上面这种方式在快捷键非法时并不会报错,只是不能生效,所以实际推荐使用枚举的写法

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);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));
}Widget::~Widget()
{delete ui;
}

注意枚举中的所有键都是全大写的。

如果想要设置组合键可以这样设置:

    ui->pushButton_up->setShortcut(QKeySequence("ctrl+w"));ui->pushButton_up->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_W));

注意,ctrl 和 shift 这些键在 Qt 中不加 Key_ ,所以其他组合键报错可以查表看一下枚举怎么定义的名称。

枚举实现组合键的原理其实很简单, CTRL 实际被定义为了一个很大但尾部几乎都是 0 的数,而其他的 key_ 键都是很小的数。这样两个键组合得到的值就是组合键的枚举值。

QPushButton3

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

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

相关文章

【PHP】php+mysql 活动信息管理系统(源码+论文+数据库+数据库文件)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 【PHP】php 活动信息管理系统(源码论文…

搭建一个 Spring Boot 项目,解决jdk与springboot版本不匹配

搭建一个 Spring Boot 项目 方式一:使用 Spring Initializr Spring Initializr 是一个基于 Web 的工具,用于快速生成 Spring Boot 项目的基础结构。 访问 Spring Initializr 网站:https://start.spring.io/配置项目信息: …

基于SpringBoot的小区运动中心预约管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

WPF快速创建DeepSeek本地自己的客户端-基础思路版本

开发工具:VS 2015 开发环境:.Net 4.0 使用技术:WPF 本篇文章内容: 本地部署DeepSeek以后一般使用网页工具(如Chatbox)或者DOS窗口与其对话。本篇文章使用WPF创建一个基础版的对话工具。 一、搭建本地DeepS…

【怎么使用Redis实现一个延时队列?】

怎么使用Redis实现一个延时队列? 详细说明Java代码示例解释注意事项使用Redis实现延时队列通常通过有序集合(Sorted Set)来实现,利用Redis的ZSET类型及其相关命令可以很方便地实现这一功能。 有序集合中的每个元素都有一个分数(score),我们可以利用这个分数来存储消息需…

Blackbox.AI:高效智能的生产力工具新选择

前言 在当今数字化时代,一款高效、智能且功能全面的工具对于开发者、设计师以及全栈工程师来说至关重要。Blackbox.AI凭借其独特的产品特点,在众多生产力工具中脱颖而出,成为了我近期测评的焦点。以下是我对Blackbox.AI的详细测评&#xff0…

第2章 信息技术发展(一)

2.1 信息技术及其发展 2.1.1 计算机软硬件 计算机硬件(Computer Hardware)是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。 计算机软件 (Computer Software)是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理规则的描述; 文档…

AI工作流

AI 工作流 是什么? AI 工作流 是一种利用人工智能技术设计的一系列任务或步骤序列,用于完成特定目标的过程。它将一系列AI相关的操作整合在一起,形成一个高效的、结构化的流程,从而实现预定的目标。 AI 工作流 的组成部分 目标定…

用deepseek学大模型08-卷积神经网络(CNN)

yuanbao.tencent.com 从入门到精通卷积神经网络(CNN),着重介绍的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点&#xf…

数据库加密全解析:从传输到存储的安全实践

title: 数据库加密全解析:从传输到存储的安全实践 date: 2025/2/17 updated: 2025/2/17 author: cmdragon excerpt: 数据加密是数据库安全的最后一道物理防线。传输层SSL/TLS配置、存储加密技术及加密函数实战应用,覆盖MySQL、PostgreSQL、Oracle等主流数据库的20+生产级加密…

以太网详解(八)传输层协议:TCP/UDP 协议

文章目录 传输层协议概述为什么需要传输层?传输层功能网络层与传输层在实现 “端到端” 传输的异同两类服务:面向连接/无连接服务 传输控制协议 TCPTCP 协议数据单元格式TCP 的重传机制快重传和快恢复快重传举例快恢复算法 用户数据报协议 UDPUDP 概述UDP 基本工作过…

贪吃蛇游戏

贪吃蛇 一、html <div class"container" id"app"></div><script src"./js/index.js"></script>二、css * {margin: 0;top: 0;} .set {margin: 15px auto;width: 600px; } .container {width: 600px;height: 600px;bac…

【动态路由】系统Web URL资源整合系列(后端技术实现)【apisix实现】

需求说明 软件功能需求&#xff1a;反向代理功能&#xff08;描述&#xff1a;apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 业务应用等多个web资…

Spring Boot(七):Swagger 接口文档

1. Swagger 简介 1.1 Swagger 是什么&#xff1f; Swagger 是一款 RESTful 风格的接口文档在线自动生成 功能测试功能软件。Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。目标是使客户端和文件系统作为服务器以同样的…

MongoDB 7 分片副本集升级方案详解(上)

#作者&#xff1a;任少近 文章目录 前言&#xff1a;Mongodb版本升级升级步骤环境1.1环境准备1.2standalone升级1.3分片、副本集升级 前言&#xff1a;Mongodb版本升级 在开始升级之前&#xff0c;请参阅 MongoDB下个版本中的兼容性变更文档&#xff0c;以确保您的应用程序和…

Redis离线安装

Linux系统Centos安装部署Redis缓存插件 参考&#xff1a;Redis中文网&#xff1a; https://www.redis.net.cn/ 参考&#xff1a;RPM软件包下载地址&#xff1a; https://rpmfind.net/linux/RPM/index.html http://rpm.pbone.net/ https://mirrors.aliyun.com/centos/7/os…

长视频生成、尝试性检索、任务推理 | Big Model Weekly 第56期

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 COMAL:AConvergent Meta-Algorithm for Aligning LLMs with General Preferences 许多对齐方法&#xff0c;包括基于人类反馈的强化学习&#xff08;RLHF&#xff09;&#xff0c;依赖于布拉德利-特里&#…

SQL高级语法

1. TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说&#xff0c;TOP 子句是非常有用的。 SQL Server 的语法&#xff1a; SELECT TOP number|percent column_name(s) FROM table_name MySQL 语法 在 MySQL 中&#xff0c;并没有直接支持 TOP 语…

均匀面阵抗干扰算法原理及MATLAB仿真

均匀面阵抗干扰算法原理及MATLAB仿真 仿真方向图&#xff0c;频谱图&#xff0c;计算输出SNR、INR、SINR 文章目录 前言一、抗干扰算法原理二、抗干扰算法仿真三、MATLAB源代码总结 前言 \;\;\;\;\; 在阵列信号处理中&#xff0c;信号的抗干扰处理是重中之重&#xff0c;传输期…

Elasticsearch:同义词在 RAG 中重要吗?

作者&#xff1a;来自 Elastic Jeffrey Rengifo 及 Toms Mura 探索 RAG 应用程序中 Elasticsearch 同义词的功能。 同义词允许我们使用具有相同含义的不同词语在文档中搜索&#xff0c;以确保用户无论使用什么确切的词语都能找到他们所寻找的内容。你可能会认为&#xff0c;由于…