QPushButton继承自QAbstractButton,具有QAbstractButton的所有API方法和信号,同时还提供了一些额外的API方法和信号,如下:
API方法:
- 1.setText(text: str):设置按钮的文本
- 2.setIcon(icon: QIcon):设置按钮的图标
- 3.setCheckable(checkable: bool):设置按钮是否可切换
- 4.setChecked(checked: bool):设置按钮的选中状态
- 5.setEnabled(enabled: bool):设置按钮是否可用
- 6.setDefault(isDefault: bool):设置按钮是否为默认按钮
- 7.setAutoDefault(enabled: bool):设置按钮是否自动成为默认按钮
信号:
- 1.clicked:按钮被点击时触发的信号
- 2.pressed:按钮被按下时触发的信号
- 3.released:按钮被释放时触发的信号
- 4.toggled:按钮被切换时触发的信号
下面是一个简单的例子,展示如何使用API方法和信号:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QPushButton API Demo')
self.setGeometry(100, 100, 300, 200)
btn1 = QPushButton('Click Me', self)
btn1.move(50, 50)
btn1.clicked.connect(self.on_btn1_clicked)
btn2 = QPushButton('Toggle Me', self)
btn2.move(50, 100)
btn2.setCheckable(True)
btn2.toggled.connect(self.on_btn2_toggled)
def on_btn1_clicked(self):
print('Button 1 clicked')
def on_btn2_toggled(self, checked):
if checked:
print('Button 2 toggled on')
else:
print('Button 2 toggled off')
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())
运行这个程序,可以看到两个按钮。点击第一个按钮会输出“Button 1 clicked”,切换第二个按钮会输出“Button 2 toggled on”或“Button 2 toggled off”,具体输出结果取决于按钮的当前状态。