QPushbutton

QPushbutton

  • API
  • 使用方式

QPushbutton大部分时候都需要使用它从父类QAbstractbutton中继承过来的那些 API。

API

// 构造函数
/*
参数:- icon: 按钮上显示的图标- text: 按钮上显示的标题- parent: 按钮的父对象, 可以不指定
*/
QPushButton::QPushButton(const QIcon &icon, const QString &text, QWidget *parent = nullptr);
QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr);
QPushButton::QPushButton(QWidget *parent = nullptr);// 判断按钮是不是默认按钮
bool isDefault() const;
// 一般在对话框窗口中使用, 将按钮设置为默认按钮, 自动关联 Enter 键 
void setDefault(bool);/*
将弹出菜单菜单与此按钮关联起来。这将把按钮变成一个菜单按钮,
在某些样式中会在按钮文本的右边产生一个小三角形。
*/
void QPushButton::setMenu(QMenu *menu);/*
显示(弹出)相关的弹出菜单。如果没有这样的菜单,这个函数什么也不做。
这个函数直到弹出菜单被用户关闭后才返回。
*/
[slot] void QPushButton::showMenu();

在这里插入图片描述

使用方式

通过API的介绍, 我们可以知道, 使用QPushButton这种类型的按钮, 有三种使用方式:

  • 作为普通按钮, 可以显示文本信息和图标
  • 设置check属性, 使其可以处于持续的被选中状态
  • 关联一个菜单, 点击按钮菜单弹出

具体操作可以参考如下代码

在这里插入图片描述

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QIcon"
#include "QSize"
#include "QDebug"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->ui->p1->setText("hello");this->ui->p1->setIcon(QIcon("C://Users//DYF//Pictures//Camera Roll//a.png"));this->ui->p1->setIconSize(QSize(30,30));//普通按钮this->ui->normalBtn->setText("normalBtn");this->ui->normalBtn->setIcon(QIcon("C://Users//DYF//Pictures//Camera Roll//a.png"));this->ui->normalBtn->setIconSize(QSize(30,30));connect(ui->normalBtn,&QPushButton::clicked,this,[=](){qDebug()<<"点击了普通按钮一下";});//有checked属性的按钮//void QAbstractButton::setCheckable(bool);// 参数为true: 点击按钮, 按钮被选中, 松开鼠标, 按钮不弹起// 参数为false: 点击按钮, 按钮被选中, 松开鼠标, 按钮弹起this->ui->checkedBtn->setCheckable(true);connect(ui->checkedBtn,&QPushButton::toggled,this,[=](bool bl){qDebug()<<"点击了checked按钮一下,当前状态为: "<<bl;});// 关联菜单ui->menuBtn->setText("你喜欢哪种美女?");QMenu* menu = new QMenu;QAction* act = menu->addAction("可爱的");menu->addAction("粘人的");menu->addAction("胸大的");menu->addAction("屁股翘的");ui->menuBtn->setMenu(menu);connect(act, &QAction::triggered, this, [=]{qDebug() << "我是一个可爱的女人, 今晚约吗?";});}MainWindow::~MainWindow()
{delete ui;
}

效果展示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Lua + Redis 实战代码

--[[luarocks install luasocket module socket not foundhttps://github.com/nrk/redis-lua最历害的是&#xff0c;用redis 去跑lua&#xff0c;分布式锁&#xff0c;限流&#xff0c;]]--local redis require("redis");local config{host"127.0.0.1&…

基于STM32+FreeRTOS的四轴机械臂

目录 代码&#xff1a; 注释写的较少&#xff0c;但本文出现的代码都有注释&#xff0c;所以请直接在本文里看注释 项目概述&#xff1a; 一 准备阶段&#xff08;都是些废话&#xff09; 二 裸机测试功能 1.摇杆控制 接线&#xff1a; CubeMX配置&#xff1a; 代码 2…

解决conda activate报错

解决方法 source ~/anaconda3/bin/activate或 source ~/miniconda3/bin/activate然后就可以使用 conda activate xxx环境了 问题解析 请参考github&#xff1a;https://github.com/conda/conda/issues/7980

深入探索代理技术:Socks5、IP代理与网络安全

在当今高度互联的世界中&#xff0c;代理技术在网络安全和爬虫等领域发挥着重要作用。本文将着重介绍Socks5代理、IP代理以及它们在网络安全与爬虫开发中的应用&#xff0c;旨在帮助读者深入理解这些技术&#xff0c;从而更好地应用于实际情境。 1. Socks5代理的特点与用途 S…

redis7高级篇2 redis的BigKey的处理

一 Bigkey的处理 1.1 模拟造数 1.截图 2.代码 &#xff1a;使用pipe 批量插入10w的数据量 cat /root/export/monidata.txt | redis-cli -h 127.0.0.1 -a 123456 -p 6379 --pipe [rootlocalhost export]# for((i1;i<10*10;i)); do echo "set k$i v$i" >>…

常见的 Web API

以下是一些常见的 Web API 列表&#xff1a; DOM API&#xff1a;用于操作和操纵网页的文档对象模型。 XMLHttpRequest&#xff1a;用于发送 HTTP 请求&#xff0c;并与服务器进行通信。 Fetch API&#xff1a;用于发送网络请求&#xff0c;并处理响应。 Web Storage API&…

python的上下文管理器

上下文管理器(Context managers) 上下文管理器允许你在有需要的时候&#xff0c;精确地分配和释放资源。 使用上下文管理器最广泛的案例就是with语句了。 想象下你有两个需要结对执行的相关操作&#xff0c;然后还要在它们中间放置一段代码。 上下文管理器就是专门让你做这种…

go gorm 查询

定义model package mysqltestimport ("errors""fmt""gorm.io/gorm" )type Product struct {gorm.ModelID uint gorm:"primarykey"Name string gorm:"column:name"Price float64 gorm:"column:price_value&quo…

【学习笔记之vue】 Cannot find module ‘node-sass‘

Cannot find module node-sass方案一&#xff08;不通&#xff09; 下载node-sass组件 >> npm install -g cnpm>>cnpm install node-sass下载时报错 方案二 使用npm下载node-sass组件 >>npm install node-sassok

安防视频监控平台EasyCVR视频集中存储平台接入RTSP设备出现离线情况的问题解决方案

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

Ubuntu 20系统WIFI设置静态IP地址,以及断连问题

​最近工作需要购置了一台GPU机器&#xff0c;然后搭建了深度学习的运行环境&#xff0c;在工作中将这台机器当做深度学习的服务器来使用&#xff0c;前期已经配置好多用户以及基础环境。但最近通过xshell连接总是不间断的出现断连现象。 补充一点&#xff0c;Ubuntu系统中与网…

Android设置顶部状态栏颜色

Android设置顶部状态栏颜色_wx637304bacd051的技术博客_51CTO博客

docker服务器、以及容器设置自动启动

一、docker服务设置自动启动 查看已启动的服务 systemctl list-units --typeservice 查看是否设置开机启动 systemctl list-unit-files | grep enable设置开机启动 systemctl enable docker.service关闭开机启动 systemctl disable docker.service 二、docker容器设置自…

java-JVM 类加载机制

JVM 类加载机制 JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&#xff0c;下面我们就分别来看一下这五个过程。 1.1. 加载 加载是类加载过程中的一个阶段&#xff0c;这个阶段会在内存中生成一个代表这…

Android EditText 使用(详细版)

经典好文推荐,通过阅读本文,您将收获以下知识点: 一、EditText 继承关系 二、EditText 常用举例 三、EditText 自定义背景框 四、EditText自动检测输入内容 五、Edittext 密文显示 六、EditText 限制只能输入特定字符 七、EditText 输入保存的字符串不能为空 一、EditText 继…

Pyqt5-开源工具分解功能(配置文件+快捷写入)

开源第五篇,配置文件及参数配置,先来看个图: 上述是自动化电池监测的简图。会根据json文件中的数据从而自动写入数据。 如何自动写入数据 从GIF中可以看到,选中的输入的标签都是QLineEdit,而QLineEdit的写入文本方法是.setText(str),注意这里是写入的文本是text,字符串。…

零售行业供应链管理核心KPI指标(二) – 线上订单履行周期

一般品牌零售商有一个大的渠道就是全国连锁的商超、大卖场&#xff0c;非常重要的渠道&#xff0c;要去铺货。同类型的产品都在竞争这个大渠道&#xff0c;但商超、大卖场在这类产品的容量是有限的&#xff0c;所以各个品牌就要去争夺整个容量&#xff0c;看谁在有限的容量里占…

Redis 7.2.0 发布,让开发更轻松

Redis 7.2.0 发布,让开发更轻松 公告内容Redis 的矢量数据库Redis 如何支持 LLM 「检索增强生成 (RAG)」「LLM 语义缓存」「推荐系统」「文档搜索」Redis 与哪些主流开发框架集成Redis 与哪些主要 AI 项目

群狼调研(长沙物业满意度调查) | 写字楼物业满意度调研的重要性

群狼调研(长沙物业第三方评优)受顾客委托开展写字楼物业满意度调研&#xff0c;写字楼物业满意度调研具有重要的意义和影响&#xff0c;写字楼物业满意度调研的重要性体现在以下几个方面&#xff1a; 1. 了解租户需求&#xff1a;通过调研&#xff0c;可以了解租户对写字楼物业…

小程序中display:flex和v-show,v-show不生效,uni-app

小程序中display:flex和v-show&#xff0c;v-show不生效、、 解决方案&#xff1a; display&#xff1a;flex样式的优先级高于了v-show &#xff0c;v-show其实就是display&#xff1a;none&#xff0c;display&#xff1a;flex优先级高于display&#xff1a;none。 使用 :s…