PyQt5按钮控件QPushButton排他性设置
按钮控件的排他性顾名思义就是一组按钮同一时刻只能被选中一个,这有点想我们驾校考试的单选题。这里我们不适用QPushButton来掩饰,前文中我们用过一个QAbstractButton子类QRadioButton演示效果比较明显。
按钮控件的排他性顾名思义就是一组按钮同一时刻只能被选中一个,这有点想我们驾校考试的单选题。这里我们不适用QPushButton来掩饰,前文中我们用过一个QAbstractButton子类QRadioButton演示效果比较明显。
这里主要学习一下几个方法:
btn.setAutoExclusive() btn.autoExclusive()
一般来说除了单选按钮以外其他按钮自动排他都是False,只有单选按钮会默认True。我们就用单选按钮来演示:
btn1 = QRadioButton(window) btn1.move(60, 60) btn1.resize(80, 40) btn1.setText('按钮1') btn1.setAutoExclusive(True) btn2 = QRadioButton(window) btn2.move(160, 60) btn2.resize(80, 40) btn2.setText('按钮2') btn2.setAutoExclusive(True)
效果如下:
同时按钮1和2只能被选中一个。这里可以通过autoExclusive()来判断,就不验证了,下面是完整代码。
from PyQt5.Qt import * import sys app = QApplication(sys.argv) window = QWidget() window.setWindowTitle('按钮状态 - PyQt5中文网') window.resize(600, 450) btn1 = QRadioButton(window) btn1.move(60, 60) btn1.resize(80, 40) btn1.setText('按钮1') btn1.setAutoExclusive(True) btn2 = QRadioButton(window) btn2.move(160, 60) btn2.resize(80, 40) btn2.setText('按钮2') btn2.setAutoExclusive(True) print(btn2.autoExclusive()) window.show() sys.exit(app.exec_())