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

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

今天是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()

看看源码

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()

关于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()

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

目录
相关文章
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
Pyside6-第七篇-QLineEdit文本行编辑(内设案例)
1447 0
|
容器
Pyside6-第十三篇-布局(最后一章废话-理论篇)
Pyside6-第十三篇-布局(最后一章废话-理论篇)
1084 0
Pyside6-第四篇-QCheckBox复选框
Pyside6-第四篇-QCheckBox复选框
1227 0
Pyside6-第四篇-QCheckBox复选框
|
Python
Pyside6-第一篇-创建第一个窗口
Pyside6-第一篇-创建第一个窗口
655 0
Pyside6-第十篇-纯文本QPlainTextEdit
Pyside6-第十篇-纯文本QPlainTextEdit
868 0
Pyside6-第十篇-纯文本QPlainTextEdit
Pyside6-第八篇-QLabel文本标签
Pyside6-第八篇-QLabel文本标签
738 0
Pyside6-第六篇-各按钮的信号与槽
Pyside6-第六篇-各按钮的信号与槽
536 0
Pyside6-第三篇-QToolButton一个的按钮
Pyside6-第三篇-QToolButton一个的按钮
569 0
|
数据安全/隐私保护
Pyside6实操笔记(一):系统页面跳转
本文介绍了如何使用Pyside6实现系统页面跳转,包括登录界面跳转到注册界面的代码实现。关键步骤包括创建空窗口、编写跳转逻辑,并提供了完整的登录和注册窗口代码。此外,还涉及了国际化、主题色设置和窗口特效等高级功能。
496 0
|
XML JSON Ubuntu
Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto-py-to-exe)
本文介绍了使用Nuitka、PyInstaller和auto-py-to-exe三种工具将Python的PyQt/PySide6应用打包成exe文件的方法。提供了详细的安装步骤、打包命令和参数说明,适合新手学习和实践。
3782 0