📅  最后修改于: 2023-12-03 14:45:51.061000             🧑  作者: Mango
在PyQt5中,单选按钮(QRadioButton)可用于在多个选项中选择一个选项。在此主题中,我们将讨论如何查找单选按钮是否被选中。
以下是一个简单的程序,其中包含两个单选按钮 - 男和女,一个按钮用于显示所选单选按钮,另一个按钮用于检查哪个单选按钮被选中。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QButtonGroup, QRadioButton, QPushButton, QLabel, QVBoxLayout
class App(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('PyQt5 – 查找单选按钮是否被选中')
self.gender_button_group = QButtonGroup()
male_button = QRadioButton('男')
self.gender_button_group.addButton(male_button, 1)
female_button = QRadioButton('女')
self.gender_button_group.addButton(female_button, 2)
show_button = QPushButton('显示所选单选按钮')
show_button.clicked.connect(self.show_selected_radio_button)
check_button = QPushButton('检查哪个单选按钮被选中')
check_button.clicked.connect(self.check_radio_button_status)
self.label = QLabel(self)
main_layout = QVBoxLayout()
main_layout.addWidget(male_button)
main_layout.addWidget(female_button)
main_layout.addWidget(show_button)
main_layout.addWidget(check_button)
main_layout.addWidget(self.label)
self.setLayout(main_layout)
def show_selected_radio_button(self):
selected_button = self.gender_button_group.checkedButton()
if selected_button:
self.label.setText('所选单选按钮是:' + selected_button.text())
def check_radio_button_status(self):
male_button_status = '已选择' if self.gender_button_group.checkedButton() == self.gender_button_group.button(1) else '未选择'
female_button_status = '已选择' if self.gender_button_group.checkedButton() == self.gender_button_group.button(2) else '未选择'
self.label.setText('男: ' + male_button_status + '\n' + '女: ' + female_button_status)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
ex.show()
sys.exit(app.exec_())
我们首先创建一个窗口小部件类 - App,并在其中添加两个单选按钮(男和女),一个用于显示所选单选按钮的按钮,另一个用于检查哪个单选按钮被选中的按钮。
我们使用 QButtonGroup 类创建一个单选按钮组,并使用 addButton() 向组中添加单选按钮。
show_selected_radio_button() 函数检查是否选中了单选按钮,并在 QLabel 控件中显示所选单选按钮的文本。
check_radio_button_status() 函数检查哪个单选按钮被选中,并在 QLabel 控件中显示男和女单选按钮的状态。
最后,我们实例化 QApplication 类,并在其中实例化 App 类。我们调用 show() 方法显示小部件,并使用 sys.exit() 退出应用程序。