【Qt学习】QPushButton添加图标 并通过快捷键控制该图标

2024-02-24 03:36

本文主要是介绍【Qt学习】QPushButton添加图标 并通过快捷键控制该图标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 介绍
  • 2. 操作
  • 3. 相关资源文件

1. 介绍

我们知道:QPushButton表示一个按钮用于响应用户的点击事件。QPushButton可以显示文本、图标或同时显示两者,也可以设置按钮的样式和状态。

我们利用这点 实现一个简单的功能:用QPushButton设置图标,并设置快捷键控制该图标。


2. 操作

  1. 我们首先在Designer界面创建下面的模板(5个按钮):

    • 目标按钮,即要移动的图案
    • 上下左右四个方向按钮
      在这里插入图片描述
  2. 通过QIcon类对五个按钮 进行图标的设置:

// 1. 读取目标图片 并设置到按钮上
QIcon icon("://images/helicopter.png");
ui->pushButton_icon->setIcon(icon);
ui->pushButton_icon->setIconSize(QSize(100, 100));// 1.5 设置四个方向键
ui->pushButton_up->setIcon(QIcon(":/images/up1.png"));
ui->pushButton_down->setIcon(QIcon(":/images/down1.png"));
ui->pushButton_left->setIcon(QIcon(":/images/left1.png"));
ui->pushButton_right->setIcon(QIcon(":/images/right1.png"));
  1. 随后利用QRect类,在四个按钮的槽函数中对目标按钮 进行位置的移动:
// 2. 实现四个方向按钮的槽函数
void Widget::on_pushButton_up_clicked()
{// 将图片上移QRect rect = ui->pushButton_icon->geometry();ui->pushButton_icon->setGeometry(rect.x(), rect.y() - 10, rect.width(), rect.height());
}void Widget::on_pushButton_down_clicked()
{// 将图片下移QRect rect = ui->pushButton_icon->geometry();ui->pushButton_icon->setGeometry(rect.x(), rect.y() + 10, rect.width(), rect.height());
}void Widget::on_pushButton_left_clicked()
{// 将图片左移QRect rect = ui->pushButton_icon->geometry();ui->pushButton_icon->setGeometry(rect.x() - 10, rect.y(), rect.width(), rect.height());
}void Widget::on_pushButton_right_clicked()
{// 将图片右移QRect rect = ui->pushButton_icon->geometry();ui->pushButton_icon->setGeometry(rect.x() + 10, rect.y(), rect.width(), rect.height());
}
  1. 最后 绑定快捷键,也可以设置鼠标连发:
// 3. 设置按钮快捷键
ui->pushButton_up->setShortcut(QKeySequence(Qt::Key_Up));
ui->pushButton_down->setShortcut(QKeySequence(Qt::Key_Down));
ui->pushButton_left->setShortcut(QKeySequence(Qt::Key_Left));
ui->pushButton_right->setShortcut(QKeySequence(Qt::Key_Right));// 3.5 开启鼠标连发功能
ui->pushButton_up->setAutoRepeat(true);
ui->pushButton_down->setAutoRepeat(true);
ui->pushButton_left->setAutoRepeat(true);
ui->pushButton_right->setAutoRepeat(true);

结果演示:

请添加图片描述

3. 相关资源文件

上文涉及的代码等资源文件👇

QPushButton的使用 - 设置快捷键控制带图标按钮

这篇关于【Qt学习】QPushButton添加图标 并通过快捷键控制该图标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740832

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Qt中QGroupBox控件的实现

《Qt中QGroupBox控件的实现》QGroupBox是Qt框架中一个非常有用的控件,它主要用于组织和管理一组相关的控件,本文主要介绍了Qt中QGroupBox控件的实现,具有一定的参考价值,感兴趣... 目录引言一、基本属性二、常用方法2.1 构造函数 2.2 设置标题2.3 设置复选框模式2.4 是否

QT进行CSV文件初始化与读写操作

《QT进行CSV文件初始化与读写操作》这篇文章主要为大家详细介绍了在QT环境中如何进行CSV文件的初始化、写入和读取操作,本文为大家整理了相关的操作的多种方法,希望对大家有所帮助... 目录前言一、CSV文件初始化二、CSV写入三、CSV读取四、QT 逐行读取csv文件五、Qt如何将数据保存成CSV文件前言

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要