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-第四篇-QCheckBox复选框
Pyside6-第四篇-QCheckBox复选框
637 0
Pyside6-第四篇-QCheckBox复选框
Pyside6-第八篇-QLabel文本标签
Pyside6-第八篇-QLabel文本标签
390 0
Pyside6-第三篇-QToolButton一个的按钮
Pyside6-第三篇-QToolButton一个的按钮
266 0
Pyside6-第六篇-各按钮的信号与槽
Pyside6-第六篇-各按钮的信号与槽
268 0
|
6月前
|
开发者
QT基础教程(QPushButton及信号与槽)
QT基础教程(QPushButton及信号与槽)
379 0
PyQt5-QLabel控件是什么?方法有哪些?具体如何使用?
PyQt5-QLabel控件是什么?方法有哪些?具体如何使用?
70 0
Pyside6-第十一篇-QComboBox下拉列表
Pyside6-第十一篇-QComboBox下拉列表
746 0
Pyside6-第五篇-单选按钮QRadioButton
Pyside6-第五篇-单选按钮QRadioButton
493 0
|
Java
Java开发GUI之Dialog弹出窗口
Java开发GUI之Dialog弹出窗口
197 0