📅  最后修改于: 2023-12-03 15:03:56.141000             🧑  作者: Mango
在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将单选框分组,然后创建信号槽,在槽函数中根据用户选择的皮肤调用相应的皮肤样式。