今天是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()
当按钮被点击的时候就会触发连接,然乎按钮的文字就会被替换成"被点击"