PySide2基础篇(八)——QRadioButton和QCheckBox运用

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_()

  运行结果:
在这里插入图片描述
  虽然按钮的外观还是多选按钮,但是功能已经变成单选按钮。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值