PyQt5 GUI编程——QRadioButton

QRadioButton类继承自QAbstractButton类,它提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项,标签用于显示对应的文本信息。单选钮是一种开关按钮,可以切换为on或者off,即checked或者unchecked,主要是为用户提供多选一的选择。
QRadioButton是单选钮控件默认是独占的。对于继承自同一个父类Widget的多个单选钮,它们属于同一个按钮组合,在单选钮组里,一次只能选择一个单选钮。如果需要多个独占的按钮组合,则需要将它们放在QGroupBox或QButtonGroup中。
当将单选钮切换到on或者off时,就会发送toggled信号,绑定这个信号,在按钮状态发生改变时触发相应的行为。
QRadioButton类的常用方法如下图所示:
PyQt5 GUI编程——QRadioButton_第1张图片
在QRadioButton中,toggled信号是在切换单选钮状态时发射的,而clicked信号则在每次点击单选钮时都会发射。因此toggled信号更适合用于状态监控。
应用实例如下:

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class Radiodemo(QWidget):
	def __init__(self,parent=None):
		super().__init__(parent)
		layout = QHBoxLayout()
		self.btn1 = QRadioButton("Button1")
		#设置为默认选中状态
		self.btn1.setChecked(True)
		self.btn1.toggled.connect(lambda:self.btnstate(self.btn1))
		layout.addWidget(self.btn1)
		
		self.btn2 = QRadioButton("Button2")
		self.btn2.toggled.connect(lambda:self.btnstate(self.btn2))
		layout.addWidget(self.btn2)
		self.setLayout(layout)
		self.setWindowTitle("RadioButton demo")
		
	def btnstate(self,btn):
		if btn.text() == "Button1":
			if btn.isChecked() == True:
				print(btn.text() + " is selected")
			else:
				print(btn.text() + " is deselected")
				
		if btn.text() == 'Button2':
			if btn.isChecked() == True:
				print(btn.text() + " is selected")
			else:
				print(btn.text() + " is deselected")
		
if __name__ == '__main__':
	app = QApplication(sys.argv)
	radioDemo = Radiodemo()
	radioDemo.show()
	sys.exit(app.exec_())

PyQt5 GUI编程——QRadioButton_第2张图片

你可能感兴趣的:(PyQt5 GUI编程——QRadioButton)