Pyside6-第二篇-QPushButton一个普通按钮

news2024/12/24 2:14:53

今天是Pyside6的第二篇内容。一起来看一个普通的按钮。

QPushButton。

from PySide6.QtWidgets import QWidget, QApplication, QPushButton

app = QApplication([])

win = QWidget()
win.setWindowTitle("QPushButton按钮")

btn = QPushButton(win)
btn.setText("触发")
btn.move(50, 50)  # 移动XY周50px的距离

win.show()
app.exec()
234e33e819dbd14d99ce371f523bf9d2.png

看看源码

class QPushButton(QAbstractButton):
    """
    QPushButton(self, icon: Union[PySide6.QtGui.QIcon, PySide6.QtGui.QPixmap], text: str, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None
    QPushButton(self, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None
    QPushButton(self, text: str, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None
    """

上面告诉了你QPushButton继承自哪个类,注释中还告诉你了一些用法。,为此,我们可以改写一下上面的写法。

关于源码的其他函数方法,大部分都是需要自己手动重载的,所以等后面用到了再介绍。

给按钮设置图标并改写一次性写法

这里说的一次性不是用完就不用的意思。

from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QWidget, QApplication, QPushButton

app = QApplication([])

win = QWidget()
win.setWindowTitle("QPushButton按钮")

btn = QPushButton(QIcon("图标.png"), "触发", win)
btn.move(50, 50)

win.show()
app.exec()
75665271295e1b828982a95aec0cb010.png

关于QPushButton的一些其他常用函数

因为是继承QAbstractButton,所以,很多函数都是可以用的

setText

from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QWidget, QApplication, QPushButton

app = QApplication([])

win = QWidget()
win.setWindowTitle("QPushButton按钮")

btn = QPushButton(QIcon("图标.png"), "触发", win)
btn.move(50, 50)
btn.setText("关闭")

win.show()
app.exec()

它会将前面的text覆盖掉。

text

获取按钮文本

from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QWidget, QApplication, QPushButton

app = QApplication([])

win = QWidget()
win.setWindowTitle("QPushButton按钮")

btn = QPushButton(QIcon("图标.png"), "触发", win)
btn.move(50, 50)

txt = btn.text()
print(txt)

win.show()
app.exec()

setIcon

设置图标

from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QWidget, QApplication, QPushButton

app = QApplication([])

win = QWidget()
win.setWindowTitle("QPushButton按钮")

btn = QPushButton("触发", win)
btn.move(50, 50)
btn.setIcon(QIcon("图标.png"))

win.show()
app.exec()

setIconSize

设置图标大小

from PySide6.QtCore import QSize
from PySide6.QtGui import QIcon
from PySide6.QtWidgets import QWidget, QApplication, QPushButton

app = QApplication([])

win = QWidget()
win.setWindowTitle("QPushButton按钮")

btn = QPushButton("触发", win)
btn.move(50, 50)
btn.setIcon(QIcon("图标.png"))
btn.setIconSize(QSize(20, 20))

win.show()
app.exec()

##信号与槽

QPushButton的信号有:

clicked(bool checked = False):按钮被点击时发出信号,可选参数checked表示按钮是否被选中。
pressed():按钮被按下时发出信号 。
released():按钮被释放时发出信号。
toggled(bool checked):按钮的选中状态发生变化时发出信号,checked表示按钮是否被选中。
doubleClicked():按钮被双击时发出信号。
hovered():鼠标悬停在按钮上时发出信号。
pressedSignal():按钮被按下时发出信号,与pressed()信号相同。
releasedSignal():按钮被释放时发出信号,与released()信号相同。
clickedSignal():按钮被点击时发出信号,与clicked()信号相同。

那么什么是槽,可以理解为函数,信号与槽,简单的理解就是将信号与槽连接起来。这里做简单的举例,后续将按钮都讲完后会出一起案例讲解。

点击信号

from PySide6.QtWidgets import QWidget, QApplication, QPushButton

app = QApplication([])

win = QWidget()
win.setWindowTitle("QPushButton按钮")

btn = QPushButton("触发", win)
btn.move(50, 50)

def btn_click():
    btn.setText("被点击")

btn.clicked.connect(btn_click)  # 连接函数

win.show()
app.exec()

当按钮被点击的时候就会触发连接,然乎按钮的文字就会被替换成"被点击"

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

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

相关文章

浅析多模态机器学习

GPT-4的发布给ChatGPT带来了又一次飞跃,ChatGPT不仅支持文字输入,还能看得懂图片、甚至是漫画、梗图,以GPT-4为代表的多模态大模型非常强大。多模态大模型就是指模型可以处理多种结构/类型的数据,例如GPT-4,它既可以处…

Hugging Face 介绍

Hugging Face 是一家在自然语言处理和人工智能领域著名的公司,以开发开源的软件库和工具为主要贡献,其中最受欢迎的是 Transformers 库,广泛应用于诸如语言翻译、情感分析和问答等多种自然语言处理任务。此外,Hugging Face 还开发…

c++ 11标准模板(STL) std::map(七)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…

100种思维模型之顺势而为思维模型-68

“我领悟到&#xff0c;人是不能推着石头往上走的&#xff0c;这样会很累&#xff0c;而且会被山上随时滚落的石头给打下去。要做的是&#xff0c;先爬到山顶&#xff0c;随便踢块石头下去。”——雷军说。 “只要站在风口上&#xff0c;猪也能飞起来“。——雷军。 顺势而为是…

JetBrains的多数据库管理和SQL工具DataGrip 2023版本在Linux系统的下载与安装配置教程

目录 前言一、DataGrip安装二、使用配置总结 前言 DataGrip是一款多数据库管理和SQL工具&#xff0c;适用于不同类型的数据库。它提供了丰富的功能和工具&#xff0c;可以帮助开发人员更高效地管理数据库、编写SQL查询和执行数据操作。注&#xff1a;已在CentOS7.9和Ubuntu20.…

海思sdk快速上手

mpp&#xff1a;视频H.264的编码压缩 1.看linux、uboot的文档 2.移植SDK到ubuntu 2.1、三个脚本 source sdk.unpack解压 2.2、osdrv/Makefile和readme make OSDRV_CROSSarm-hisiv300-linux CHIPhi3518ev200 all报错 参考&#xff1a;ubuntu16.04 编译错误: /bin/sh: 1: pushd…

《写作脑科学:如何用脑科学改善写作能力》

《写作脑科学&#xff1a;如何用脑科学改善写作能力》 前言引言概述评价结论 &#x1f3d8;️&#x1f3d8;️个人简介&#xff1a;以山河作礼。 &#x1f396;️&#x1f396;️:Python领域新星创作者&#xff0c;CSDN实力新星认证&#xff0c;阿里云社区专家博主 前言 &…

【C++】23.C++的IO流(补)

1.C标准IO流 C标准库提供了4个全局流对象cin、cout、cerr、clog&#xff0c;使用cout进行标准输出&#xff0c;即数据 从内存流向控制台(显示器)。使用cin进行标准输入即数据通过键盘输入到程序中&#xff0c;同时C 标准库还提供了cerr用来进行标准错误的输出&#xff0c;以…

chatgpt赋能python:Python中OP怎么用

Python中OP怎么用 Python是一种高级编程语言&#xff0c;可用于快速开发网站、桌面应用程序、网络爬虫和数据科学等各种领域。Python作为一种功能强大的编程语言&#xff0c;其操作符&#xff08;OP&#xff09;是一个必须学习的基本知识点。本文将介绍Python中OP的使用方法。…

DataTables表格库(一)

目录 1、零配置使用 1.2、代码 1.3、步骤 1.4、效果 2、禁用分页&#xff0c;排序等功能的配置 2.1、说明 2.2、代码 2.3、效果 3、默认排序配置 3.1、说明 3.2、代码 3.3、效果 4、多列排序 4.1、说明 4.2、代码示例 4.3、效果 5、多个表格 5.1、说明 5.2、…

【源码解析】SpringBoot使用DeferredResult实现长轮询的原理分析

使用背景 在Nacos配置更新和Apollo的配置更新&#xff0c;我们可以看到长轮询&#xff08;长连接&#xff09;的身影。长连接的实现可以节约系统资源&#xff0c;长连接可以在连接建立后持续通信&#xff0c;避免频繁地建立和断开连接&#xff0c;减少系统开销。使用长连接可以…

LAMP的运用

LAMP的运用 一、LAMP二、编译安装apache http服务三、编译安装mysqld服务四、编译安装PHP解析环境五、安装论坛 一、LAMP LAMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够提供动态Web站点服务及其应用开发环境。L…

《痞子衡嵌入式半月刊》 第 77 期

痞子衡嵌入式半月刊&#xff1a; 第 77 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻&#xff0c;农历年分二十四节气&#xff0c;希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly)&#xff0c;欢迎提交 issue&#xff0c…

【JavaSE】Java基础语法(二十八):HashSet集合

文章目录 1. HashSet集合概述和特点2. HashSet集合的基本应用3. 哈希值4. HashSet集合存储学生对象并遍历【应用】 1. HashSet集合概述和特点 底层数据结构是哈希表存取无序不可以存储重复元素没有索引,不能使用普通for循环遍历 2. HashSet集合的基本应用 存储字符串并遍历 …

Pytorch深度学习之神经网络入门详解

目录 Pytorch 入门 1.将每个图片的label作为txt文件写入另外一个文件夹&#xff08;txt文件名与图片文件名相同&#xff09; 2.tensorboard的summary writer 3.torchvision中的transforms 4.DataLoader 5.神经网络-卷积层Conv2d 6.最大池化层 7.非线性激活函数Relu 9.…

微信的大动作,很多人要颤抖了

4月25日&#xff0c;微信团队发布关于微信公众号营销内容合规规范通知&#xff0c;要求公众号在投放商业广告时需要标注广告字样。 刚开始觉得也没啥&#xff0c;无非就是加个广告的字样&#xff0c;让消费者可以及时识别出来&#xff0c; 但从效果来看&#xff0c;似乎效果并不…

华为OD机试真题B卷 Java 实现【猜密码】

一、题目描述 小杨申请了一个保密柜,但是他忘记了密码。只记得密码都是数字,而且所有数字都是不重复的。 请你根据他记住的数字范围和密码的最小数字数量,帮他算下有哪些可能的组合,规则如下: 输出的组合都是从可选的数字范围中选取的,且不能重复;输出的密码数字要按照…

意外的坚持,意外的收获!

前言&#xff1a; 转眼间&#xff0c;2023就快过了一半&#xff0c;回忆间感觉跟过完年没多久一样&#xff1b;时间是真的过的快...... 简单总结一下最近&#xff1a; 一、锻炼身体&#xff1a; 最近这段时间开始恢复锻炼身体&#xff0c;现在感觉一天下班回来&#xff0c;身体…

Java 21 新特性和改进

Java 21 是 Java 17 之后的下一个 LTS 版本。虚拟线程在 Java 21 中将成为正式功能。可以预期的是&#xff0c;Java 21 会成为一个很流行的 Java 版本。 Java 21 将在 2023 年 9 月 19 日发布。目前 Java 21 包含的内容已经基本确定了。下面来梳理一下 Java 21 中会包含的内容。…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI)转换文本(中文chatgpt版)

设置 翻译 通用翻译器 语调变换 格式转换 拼写检查/语法检查。 转换 在本笔记中&#xff0c;我们将探索如何使用大型语言模型进行文本转换任务&#xff0c;例如语言翻译、拼写和语法检查、语气调整和格式转换。 设置 import openai import osfrom dotenv import load_dotenv, f…