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

📅  最后修改于: 2023-12-03 15:03:56.141000             🧑  作者: Mango

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

在PyQt5中,我们可以使用单选框(QRadioButton)来让用户选择不同的皮肤。本篇文章介绍如何将用户选择的皮肤应用到应用程序中。

实现步骤

1.创建单选按钮和其标签

self.skin1 = QRadioButton("皮肤1")
self.skin2 = QRadioButton("皮肤2")
self.skin3 = QRadioButton("皮肤3")

2.使用QButtonGroup将单选按钮分组

self.skin_group = QButtonGroup()
self.skin_group.addButton(self.skin1, 1)
self.skin_group.addButton(self.skin2, 2)
self.skin_group.addButton(self.skin3, 3)

3.创建信号槽,每次用户选择不同的皮肤时,调用槽函数

self.skin_group.buttonClicked.connect(self.change_skin)

4.创建槽函数,根据用户选择的皮肤不同,调用不同的皮肤样式

def change_skin(self, button):
    if button.text() == "皮肤1":
        self.setStyleSheet("background-color: #ff6347")
    elif button.text() == "皮肤2":
        self.setStyleSheet("background-color: #00bfff")
    elif button.text() == "皮肤3":
        self.setStyleSheet("background-color: #6a5acd")
完整代码
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QButtonGroup, QVBoxLayout


class SkinApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.skin1 = QRadioButton("皮肤1")
        self.skin2 = QRadioButton("皮肤2")
        self.skin3 = QRadioButton("皮肤3")

        self.skin_group = QButtonGroup()
        self.skin_group.addButton(self.skin1, 1)
        self.skin_group.addButton(self.skin2, 2)
        self.skin_group.addButton(self.skin3, 3)

        self.skin_group.buttonClicked.connect(self.change_skin)

        vbox = QVBoxLayout()
        vbox.addWidget(self.skin1)
        vbox.addWidget(self.skin2)
        vbox.addWidget(self.skin3)
        self.setLayout(vbox)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Set Skin')
        self.show()

    def change_skin(self, button):
        if button.text() == "皮肤1":
            self.setStyleSheet("background-color: #ff6347")
        elif button.text() == "皮肤2":
            self.setStyleSheet("background-color: #00bfff")
        elif button.text() == "皮肤3":
            self.setStyleSheet("background-color: #6a5acd")


if __name__ == '__main__':
    app = QApplication([])
    skin_app = SkinApp()
    app.exec_()
总结

本篇文章介绍了如何使用PyQt5将用户选择的皮肤应用到应用程序中。我们可以使用单选框和QButtonGroup将单选框分组,然后创建信号槽,在槽函数中根据用户选择的皮肤调用相应的皮肤样式。