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