下面我将详细讲解Python的“PyQt5 QRadioButton小工具”的完整使用攻略。
1. Pyqt5 QRadioButton介绍
QRadioButton(单选按钮)是 PyQt5 中的一个控件,可以用来让用户从多个选项中选择一个。选择一项后,则其它项自动被取消选择。
2. Pyqt5 QRadioButton实现
首先需要导入 PyQt5 的 QWidget 和 QRadioButton 模块,示例代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
然后,我们可以创建一个 QWidget 窗口,并在其中添加 QRadioButton 控件,示例代码如下:
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QRadioButton示例')
# 创建三个单选按钮
self.radioBtn1 = QRadioButton('选项1', self)
self.radioBtn1.move(50, 20)
self.radioBtn2 = QRadioButton('选项2', self)
self.radioBtn2.move(50, 50)
self.radioBtn3 = QRadioButton('选项3', self)
self.radioBtn3.move(50, 80)
# 显示窗口
self.setGeometry(300, 300, 200, 150)
self.show()
在上例中,我们创建了三个单选按钮,分别为 “选项1”、“选项2”和“选项3”,并通过 move() 方法设置单选按钮在窗口中的位置。
接着,我们可以通过单选按钮的 clicked 信号来监听用户的选择。以下是一个简单的示例,当用户选中选项1并单击时,在终端输出“选项1已选中”,示例代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QRadioButton示例')
self.radioBtn1 = QRadioButton('选项1', self)
self.radioBtn1.move(50, 20)
self.radioBtn1.clicked.connect(self.onClick)
self.radioBtn2 = QRadioButton('选项2', self)
self.radioBtn2.move(50, 50)
self.radioBtn2.clicked.connect(self.onClick)
self.radioBtn3 = QRadioButton('选项3', self)
self.radioBtn3.move(50, 80)
self.radioBtn3.clicked.connect(self.onClick)
self.setGeometry(300, 300, 200, 150)
self.show()
def onClick(self):
if self.radioBtn1.isChecked():
print('选项1已选中')
elif self.radioBtn2.isChecked():
print('选项2已选中')
else:
print('选项3已选中')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
在上例中,我们通过 clicked 信号连接了 onClick() 方法来监听用户的选择,并通过 isChecked() 方法来判断用户选择的是哪个选项。
3. 示例说明
下面我们来看看两个具体的案例,通过它们将更好地理解 QRadioButton 的实现方式。
3.1 示例一:性别选择
假设我们有一个表单需要填写用户的性别信息,并且性别是必选项。我们可以使用 QRadioButton 来实现这个功能。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QPushButton
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('性别选择')
# 创建单选按钮
self.radioBtnMale = QRadioButton('男', self)
self.radioBtnMale.move(50, 20)
self.radioBtnMale.setChecked(True)
self.radioBtnFemale = QRadioButton('女', self)
self.radioBtnFemale.move(100, 20)
# 创建提交按钮
btn = QPushButton('提交', self)
btn.move(50, 50)
btn.clicked.connect(self.submit)
self.setGeometry(300, 300, 200, 100)
self.show()
def submit(self):
if self.radioBtnMale.isChecked():
print('性别:男')
else:
print('性别:女')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
在上例中,我们通过设置 setChecked(True) 选中了男性单选按钮。当用户点击提交按钮时,我们通过 isChecked() 方法判断用户选择的性别,并输出对应的结果。
3.2 示例二:颜色选择
假设我们有一个界面需要选择背景颜色。我们可以使用 QRadioButton 来实现这个功能。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
class App(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('颜色选择')
# 创建单选按钮
self.radioBtnRed = QRadioButton('红色', self)
self.radioBtnRed.move(50, 20)
self.radioBtnGreen = QRadioButton('绿色', self)
self.radioBtnGreen.move(50, 50)
self.radioBtnBlue = QRadioButton('蓝色', self)
self.radioBtnBlue.move(50, 80)
# 显示窗口
self.setGeometry(300, 300, 200, 150)
self.show()
# 为单选按钮设置样式
self.setStyleSheet('''
QRadioButton{
font-size: 20px;
font-weight: bold;
color: gray;
}
QRadioButton::indicator{
width: 40px;
height: 40px;
}
QRadioButton::indicator::checked{
background-color: yellow;
}
''')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
在上例中,我们使用 setStyleSheet() 方法为单选按钮设置了样式,并通过 ::indicator 来设置单选按钮选中状态的样式。
4. 总结
以上就是使用 PyQt5 中的 QRadioButton 控件实现的示例代码。通过本文的介绍,相信您已经了解如何使用 QRadioButton 来实现单选功能,以及如何为单选按钮设置样式。