📌  相关文章
📜  PyQt5 - 按下时将皮肤设置为未选中的单选按钮(1)

📅  最后修改于: 2023-12-03 14:45:46.131000             🧑  作者: Mango

PyQt5 - 按下时将皮肤设置为未选中的单选按钮

本文介绍了使用PyQt5实现按下按钮时将皮肤设置为未选中的单选按钮的方法。通过使用QButtonGroup和信号槽机制,我们可以在按钮被按下时,将其他按钮的选中状态设置为未选中。

首先,我们需要创建一个应用程序窗口并添加一组单选按钮。然后,我们将创建一个按钮组,并将每个单选按钮添加到按钮组中。

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QRadioButton, QButtonGroup

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setWindowTitle('PyQt5 Button Group Example')
        self.setGeometry(100, 100, 300, 200)

        button_group = QButtonGroup(self)
        button_group.buttonClicked.connect(self.on_button_clicked)

        rb1 = QRadioButton('Button 1', self)
        rb1.setChecked(True)  # 设置默认选中状态
        rb1.move(50, 50)
        button_group.addButton(rb1)

        rb2 = QRadioButton('Button 2', self)
        rb2.move(50, 80)
        button_group.addButton(rb2)

        rb3 = QRadioButton('Button 3', self)
        rb3.move(50, 110)
        button_group.addButton(rb3)

    def on_button_clicked(self, button):
        for btn in button.group().buttons():
            if btn != button:
                btn.setChecked(False)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上述示例中,我们使用QMainWindow作为主窗口,并在initUI()方法中创建了一个按钮组。我们将按钮组中的每个按钮与on_button_clicked槽函数连接起来。

on_button_clicked槽函数会在按钮被按下时触发。在这个函数中,我们遍历了按钮组中的每个按钮,并将选中状态设置为False,除了被按下的按钮。

这样,当我们按下某个按钮时,其他按钮的选中状态就会自动切换为未选中状态。

通过上述的例子,我们可以在PyQt5中实现按下按钮时将皮肤设置为未选中的单选按钮。这种方法可以用于创建具有复杂界面交互的应用程序。