在 Pyside6 中,QPushButton 可通过setCheckable(True)方法将按钮设置为可切换模式,使按钮可以在两种状态之间切换,这种按钮也可以叫开关按钮。
可通过setCheckable(True)方法将按钮设置为可切换模式:
button = QPushButton("Button")
button.setCheckable(True)
toggled 信号
当按钮的选中状态(checked 状态)发生改变时触发toggled信号:
button.toggled.connect(on_toggled)
def on_toggled(checked):
pass
toggled信号的槽函数接受一个布尔参数,表示按钮的选中状态,为True时表示选中。
toggled信号只会在可切换模式下触发。
相关属性和方法
isCheckable():返回布尔值,表示是否为可切换模式setCheckable(bool):设置为可切换模式isChecked():返回布尔值,判断是否为选中状态setChecked(bool):设置选中状态toggled():切换状态
示例代码
import sys
import os
from PySide6.QtWidgets import (QApplication, QWidget,
QPushButton,QVBoxLayout)
class MainWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.resize(300, 200)
self.setWindowTitle("可切换按钮示例")
self.button = QPushButton("运行")
self.button.setCheckable(True)
self.button.setStyleSheet("""
QPushButton:checked {
background-color: #4CAF50;
color: white;
}
QPushButton:!checked {
background-color: #f44336;
color: white;
}
""")
self.button.toggled.connect(self.on_toggled)
layout = QVBoxLayout()
layout.addWidget(self.button)
self.setLayout(layout)
def on_toggled(self,checked):
self.button.setText("停止" if checked else "运行")
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWidget()
window.show()
sys.exit(app.exec())