PySide2基础篇(八)——QRadioButton和QCheckBox运用
前言:
阅读这篇文章我们能学到什么?
同属于一组的多个单选按钮,每次只能选中一个,而多选按钮则可同时选中多个。
——如果你觉得这是一篇不错的博文,希望你能给一个小小的赞,感谢您的支持。
1 单选按钮
1.1 创建单选按钮
属于同一组的多个单选按钮,每次只能选中一个。选中一个,则其他被选中的自动变为未选中状态。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QRadioButton
app = QApplication([])
MainWindow = QMainWindow()
RadioBUtton1 = QRadioButton(MainWindow)
RadioBUtton1.move(0, 0)
RadioBUtton1.setText("选项1")
RadioBUtton2 = QRadioButton(MainWindow)
RadioBUtton2.move(0, 20)
RadioBUtton2.setText("选项2")
RadioBUtton3 = QRadioButton(MainWindow)
RadioBUtton3.move(0, 40)
RadioBUtton3.setText("选项3")
MainWindow.show()
app.exec_()
运行结果:
1.2 单选按钮点击事件
单选按钮被点击时可以设置响应事件,即使重复点击已经选中的单选按钮。
运行结果:
from PySide2.QtWidgets import QApplication, QMainWindow, QRadioButton, QButtonGroup
from PySide2.QtCore import Slot
app = QApplication([])
MainWindow = QMainWindow()
RadioBUtton1 = QRadioButton(MainWindow)
RadioBUtton1.move(0, 0)
RadioBUtton1.setText("选项1")
RadioBUtton2 = QRadioButton(MainWindow)
RadioBUtton2.move(0, 20)
RadioBUtton2.setText("选项2")
RadioBUtton3 = QRadioButton(MainWindow)
RadioBUtton3.move(0, 40)
RadioBUtton3.setText("选项3")
@Slot()
def PressButton():
print(ButtonGroup.checkedButton().text())
ButtonGroup = QButtonGroup()
ButtonGroup.addButton(RadioBUtton1)
ButtonGroup.addButton(RadioBUtton2)
ButtonGroup.addButton(RadioBUtton3)
ButtonGroup.buttonClicked.connect(PressButton) #按钮被点击时调用函数,即使点击已经选中的项
MainWindow.show()
app.exec_()
代码示例:
2 多选按钮
2.1 创建多选按钮
与单选按钮不同,多选按钮可以一次性选中多个。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QCheckBox
app = QApplication()
MainWindow = QMainWindow()
CheckBox1 = QCheckBox(MainWindow)
CheckBox1.move(0, 0)
CheckBox1.setText("选项1")
CheckBox2 = QCheckBox(MainWindow)
CheckBox2.move(0, 20)
CheckBox2.setText("选项2")
CheckBox3 = QCheckBox(MainWindow)
CheckBox3.move(0, 40)
CheckBox3.setText("选项3")
MainWindow.show()
app.exec_()
运行结果:
2.2 同一个按钮组下的多选按钮
虽然多选按钮可以同时选中多个按钮,但是如果把它们放在同一个按钮组里,则变成单选按钮。
代码示例:
from PySide2.QtWidgets import QApplication, QMainWindow, QCheckBox, QButtonGroup
from PySide2.QtCore import Slot
app = QApplication()
MainWindow = QMainWindow()
CheckBox1 = QCheckBox(MainWindow)
CheckBox1.move(0, 0)
CheckBox1.setText("选项1")
CheckBox2 = QCheckBox(MainWindow)
CheckBox2.move(0, 20)
CheckBox2.setText("选项2")
CheckBox3 = QCheckBox(MainWindow)
CheckBox3.move(0, 40)
CheckBox3.setText("选项3")
@Slot()
def PressButton():
print(ButtonGroup.checkedButton().text())
ButtonGroup = QButtonGroup()
ButtonGroup.addButton(CheckBox1)
ButtonGroup.addButton(CheckBox2)
ButtonGroup.addButton(CheckBox3)
ButtonGroup.buttonClicked.connect(PressButton) #按钮被点击时调用函数,即使点击已经选中的项
MainWindow.show()
app.exec_()
运行结果:
虽然按钮的外观还是多选按钮,但是功能已经变成单选按钮。