下面是Python的“PyQt5 - 为单选按钮添加动作”的完整使用攻略。
1. 安装PyQt5
在使用PyQt5之前,我们需要先安装它。可以通过pip来安装:
pip install PyQt5
2. 创建单选按钮
首先,我们需要在GUI程序中创建一个单选按钮。可以使用QRadioButton
。
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
app = QApplication([])
win = QWidget()
rb1 = QRadioButton('Option 1', win)
rb2 = QRadioButton('Option 2', win)
win.setGeometry(100, 100, 300, 200)
win.show()
app.exec_()
在以上示例中,我们创建了两个单选按钮rb1
和rb2
,并将它们添加到了窗口win
中。
3. 添加动作
现在我们需要为单选按钮添加动作。可以通过toggle
信号来实现。
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
app = QApplication([])
win = QWidget()
rb1 = QRadioButton('Option 1', win)
rb2 = QRadioButton('Option 2', win)
def on_radio_button_toggled():
print('Option 1:', rb1.isChecked())
print('Option 2:', rb2.isChecked())
rb1.toggled.connect(on_radio_button_toggled)
rb2.toggled.connect(on_radio_button_toggled)
win.setGeometry(100, 100, 300, 200)
win.show()
app.exec_()
在以上示例中,我们定义了一个on_radio_button_toggled
函数来处理单选按钮的toggle
信号。函数中使用isChecked
方法来检查单选按钮的选中状态,并输出结果。
然后,我们将on_radio_button_toggled
函数与两个单选按钮的toggle
信号连接起来,这样当单选按钮的状态发生改变时,就会自动执行定义的函数。
示例1
现在,我们来看一个更加实际的示例:根据选中的单选按钮,改变窗口背景颜色。
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
app = QApplication([])
win = QWidget()
rb1 = QRadioButton('Red', win)
rb2 = QRadioButton('Green', win)
def on_radio_button_toggled():
if rb1.isChecked():
win.setStyleSheet("background-color: red;")
elif rb2.isChecked():
win.setStyleSheet("background-color: green;")
rb1.toggled.connect(on_radio_button_toggled)
rb2.toggled.connect(on_radio_button_toggled)
win.setGeometry(100, 100, 300, 200)
win.show()
app.exec_()
在以上示例中,我们创建了两个单选按钮rb1
和rb2
,一个on_radio_button_toggled
函数来处理单选按钮的toggle
信号,使用setStyleSheet
方法来改变窗口的背景颜色。
示例2
我们还可以将单选按钮放在一个按钮组中,并在其中选中一个时取消其他单选按钮的选中状态。
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup, QVBoxLayout
app = QApplication([])
win = QWidget()
rb1 = QRadioButton('Option 1', win)
rb2 = QRadioButton('Option 2', win)
rb3 = QRadioButton('Option 3', win)
group = QButtonGroup()
group.addButton(rb1, 1)
group.addButton(rb2, 2)
group.addButton(rb3, 3)
group.buttonClicked.connect(lambda: print(group.checkedId()))
vbox = QVBoxLayout()
vbox.addWidget(rb1)
vbox.addWidget(rb2)
vbox.addWidget(rb3)
win.setLayout(vbox)
win.setGeometry(100, 100, 300, 200)
win.show()
app.exec_()
在以上示例中,我们创建了三个单选按钮rb1
,rb2
和rb3
,并将它们添加到了一个垂直布局中。然后我们创建了一个按钮组group
,并将三个单选按钮添加到其中。
然后我们定义了一个Lambda函数来处理按钮组的buttonClicked
信号。这个函数使用checkedId
方法来查找选中的单选按钮的ID,并输出结果。
最后,我们将布局设置为窗口的布局并显示窗口。
以上就是Python的“PyQt5 - 为单选按钮添加动作”的完整使用攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 为单选按钮添加动作 - Python技术站