Qt扫盲-QPushButton 理论总结

news2024/12/24 2:29:10

QPushButton 理论总结

  • 一、简述
  • 二、常用要点
    • 1. 快捷键相关
    • 2. 信号相关
    • 3. 默认按钮
    • 3. 推荐使用
    • 4. 重复功能
    • 5. 菜单功能

一、简述

PushButton 按钮或CommandButton 按钮应该是图形用户界面中最常用的小部件。按下(单击)一个按钮就可以命令计算机执行某些操作或回答问题。典型的按钮包括 “确定”、“应用”、“取消”、“关闭”、“是”、“否”和“帮助”等等。

二、常用要点

1. 快捷键相关

按钮是矩形的,按钮内显示描述其操作的文本。
按钮可以显示文本和小图标(可选)。这些可以使用构造函数进行设置,并在以后使用 setText() 和 setIcon() 进行更改。如果按钮被禁用,文本和图标的外观将根据 GUI 样式进行操作,以使按钮看起来“禁用”。一般哈,一般不用 setIcon() 来设置图标,一般使用的是 QSS 来显示设置的

【注】在 macOS 上,当按钮的宽度小于 50 或高度小于 30 时,按钮的角将从圆形变为方形。使用 setMinimumSize() 函数来防止此行为。

可以通过在文本中的首选字符前面加上 & 号来指定快捷键。例如:

QPushButton *button = new QPushButton("&Download", this);

在此示例中,快捷方式为 Alt+D。也可以用指定设置快捷键,参考

button->setIcon(QIcon(":/images/print.png"));
button->setShortcut(tr("Alt+F7"));

2. 信号相关

按钮在鼠标、空格键或键盘快捷键激活时发出 clicked() 信号。用槽函数来响应这个信号就行。按钮还提供不太常用的信号,例如 pressed() 和 release()。具体的信号还得看 QAbstractButton, 也就是 QPushButton 的父亲。
有兴趣可以看看我之前记录 Qt扫盲-QAbstractButton 笔记总结。

3. 默认按钮

对话框中的命令按钮默认为自动默认按钮,即,当它们收到键盘输入焦点时,它们会自动成为默认按钮。默认按钮是当用户在对话框中按 Enter 或 Return 键时激活的按钮。您可以使用 setAutoDefault() 更改此设置。请注意,自动默认按钮会保留一些额外的空间,这是绘制默认按钮指示器所必需的。如果你不希望按钮周围有这个空间,请调用setAutoDefault(false)。
在这里插入图片描述
像 save 就是一个默认按钮。

3. 推荐使用

这个我不太清楚,但是我大概懂官方的意思,其实就行Qt Asstant的上面搜索栏 的方形按钮,就是用的QToolButton。
当应用程序或对话框窗口在用户单击它时执行操作时,以及当小组件应具有带有文本标签的宽矩形形状时,请使用 QPushButton按钮。更改窗口状态而不是执行操作的小(通常是方形,下面就是)按钮不是 PushButton 按钮,而是 Tool 按钮。Qt为这些按钮提供了一个特殊的类(QToolButton)。
在这里插入图片描述

4. 重复功能

其实就是 按下按钮后,我们可以设置 按钮还是处于激活状态,就会定时的发送按下的信号之类的。其实就像滚动条中的箭头一样在按下时自动重复激活信号的按钮。这样滚动条就会一直滚动啦。
在这里插入图片描述
相关函数其实就是 setAutoRepeat() 和 setAutoRepeatInterval() 就行啦

5. 菜单功能

这个功能用的多,就是把一个菜单Menu 黏在 按钮上,有点像 QCombox
在这里插入图片描述
把 功能按钮 转换 为菜单按钮使用 setMenu() 方法将弹出菜单与按钮相关联。这样就会单击它们时会弹出选项菜单。以便多种选择。这样就会有一个小三角形 在 右侧 ,但是可以用 QSS 去掉的。

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

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

相关文章

【1691. 堆叠长方体的最大高度】

来源:力扣(LeetCode) 描述: 给你 n 个长方体 cuboids ,其中第 i 个长方体的长宽高表示为 cuboids[i] [widthi, lengthi, heighti](下标从 0 开始)。请你从 cuboids 选出一个 子集 &#xff0c…

快速傅里叶变换及Python代码实现

一、前言 我想认真写好快速傅里叶变换(Fast Fourier Transform,FFT),所以这篇文章会由浅到细,由窄到宽的讲解,但是傅里叶变换对于寻常人并不是很容易理解的,所以对于基础不牢的人我会通过前言普…

阿里巴巴2022年最新最全500道Java后端面试大全(值得收藏)

进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全其中概括的知识点有:Java基础、spring、springmvc、springboot、springcloud、JVM、Tomcat、dubbo、netty、zookeeper共有50…

Java中四大线程池应用及详解

线程池的思想 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率&a…

移动网络技术--名词介绍

GPRS网络制式(General Packet Radio Service)为“通用分组无线服务”,它是利用“包交换”(Packet-Switched)的概念所发展出的一套基于GSM系统的无线传输方式。 GGSN(Gateway GPRS Supporting Node,网关GPR…

Nginx入门到弃坑---安装与使用篇(2)

1 下载 官网传送门下载传送门点击下载最新Windows-1.23版下载传送门点击下载最新Linux-1.23版下载传送门 2 Windows安装 2.1 环境介绍 下载完成后解压缩 目录如下 配置文件地址:.\nginx-1.23.2\conf\nginx.conf,默认配置的nginx监听的端口为80&…

监控系列(一)DM8+Prometheus+Grafana搭建

一、背景 近期进行适配,因用户统一监控平台使用的是promethesugrafanaaltermannger这一套,因此对达梦数据库进行适配对接。 目前主要有两种方式: 1. 部署Dem管理系统对外提供接口推送到prometheus进行采集数据,采集项可查看《De…

【云计算与大数据技术】分布式计算、虚拟化技术、并行编程技术等技术讲解(超详细必看)

一、分布式计算 分布式计算是一种计算方法,和集中式计算相对,随着计算的发展,一些应用需要巨大的计算能力才能完成,如果采用集中式计算则需要耗费很长的时间,而分布式计算将应用分解成许多更小的部分,分配…

文献阅读(195)物理设计/时序分析

文章目录物理设计时序分析题目:Intelligent Design Automation for 2.5/3D Heterogeneous SoC Integration时间:2020会议:ICCAD研究机构:国立台湾大学 本篇论文的主要贡献: 物理设计:包括RDL布线和板级布…

蚁群优化算法解决TSP问题(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

CSS 3万字超详细总结

文章目录1. CSS简介2. CSS的使用2.1 行内样式2.2 内部样式表2.3 外部样式表2.4 多重样式与样式优先级3. CSS选择器3.1 简单选择器3.1.1 元素选择器3.1.2 id选择器3.1.3 class选择器3.2 组合器选择器3.2.1 后代选择器3.2.2 子选择器3.2.3 相邻兄弟选择器3.2.4 通用兄弟选择器3.3…

C# 流程控制语句

一 结构化程序设计的三种基本流程 1 顺序 分支 循环 2 简单语句 最简单的语句:方法调用语句及赋值语句 后面有个分号 如: System.Console.Write("Hello World"); ba>0?a:-a; sTextBox1.Text; dint.Parse(s);注意:没有表达式…

SpringBoot简单优雅实现图片上传功能(超详细)

文章目录前言技术栈项目目录前端实现index.htmlscript.js后端实现MultipartFile 介绍配置文件实体类ControllerMapperService拦截器测试结果展示前言 最近有一个需求需要实现图片上传,因此,本人找到了一个可以快速实现该功能的插件mini-upload-form。在…

CAS:2374782-03-1,NOTA-FAPI-4化学试剂供应

试剂描述 NOTA-FAPI-4是FAPI-4的类似物和成纤维细胞活化蛋白(FAP)抑制剂。NOTA-FAPI-4可作为PET示踪剂用于检测与成纤维细胞活化蛋白相关的紊乱。 试剂基本信息 1、名称:NOTA-FAPI-4 2、CAS编号:2374782-03-1 3、分子式&#x…

Seata模式

爬虫组件分析目录概述需求:设计思路实现思路分析1.一、AT 模式参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survi…

_4LeetCode代码随想录算法训练营第四天-C++

_4LeetCode代码随想录算法训练营第四天-C 两两交换链表中的节点 19.删除链表的倒数第N个节点 面试题 02.07. 链表相交 142.环形链表II 24.两两交换链表中的节点 整体思路 不是简单地交换值,而是交换指针地指向。 终止条件为: cur->next ! nul…

偏微分方程重要的前置知识

现在觉得很dog 开学期末考试正好美赛。无法评论,无法评论。乐淘淘,乐淘淘。期末考试不要延迟,求求了或者不安排在下学期第一周也可以。。。。反正求求了,美赛机会难得当然,如果是偏微分方程的问题的话,其实…

springboot连接Oracle的注意点(数据库信息配置、主键精度问题、OJDBC jar包、Oracle主键自增问题)

开篇废话:(前段时间因为太忙没有坚持写博客,导致很久没有更新,今天终于忙里偷闲写上一篇) 最近做了一个项目,数据库用的是Oracle,由于之前一直用的是MySQL,所以在一些细节配置上不是…

详细教你用NPS搭建内网穿透服务

文章目录 前言一、NPS概述 NPS的原理 二、NPS服务器搭建 1、下载软件2、云服务器配置 2.1、防火墙配置2.2、用WinSCP远程上传服务文件2.3、使用SSH终端安装启动2.4、修改配置文件 三、客户端连接总结 前言 相信大家外出旅游或者出差都是背着轻薄本,如果空闲之余想…

【Dubbo3高级特性】「实战开发」适配日志框架并支持运行时动态切换使用的日志框架开发实战

日志框架适配及运行时管理 本节内容主要是针对于如何在Dubbo中适配日志框架并支持运行时动态切换使用的日志框架,首先前提是需要进行启动我们Dubbo服务的Qos服务,它主要用于作为我们的操作对应的日志切换的功能实现机制 特性说明 日志框架适配&#x…