下面是关于如何使用PyQt5为单选按钮设置皮肤的完整攻略。
1. 确认环境
在开始学习PyQt5之前,需要确认已安装Python和PyQt5。可以通过运行以下命令来检查:
python --version
pip list | grep PyQt5
2. 创建窗口
首先,我们需要从PyQt5.QtWidgets导入QWidget、QRadioButton和QApplication类。然后,我们需要创建一个QWidget类型的窗口,并添加单选按钮。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
class App(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 200, 100)
self.setWindowTitle('PyQt5 Radio Button')
self.initUI()
def initUI(self):
rb1 = QRadioButton('Skin 1', self)
rb1.move(50, 20)
rb1.toggled.connect(self.onToggled)
rb2 = QRadioButton('Skin 2', self)
rb2.move(50, 50)
rb2.toggled.connect(self.onToggled)
self.show()
def onToggled(self):
radioButton = self.sender()
if radioButton.isChecked():
self.setStyleSheet('background-color: %s;' % (radioButton.text()))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
在上述代码中,我们创建了一个名为App的QWidget类型的窗口,并在窗口中添加了两个单选按钮。当单选按钮被按下时,将触发onToggled方法,该方法将设置应用程序窗口的背景颜色。
3. 示例1
在这个示例中,我们将创建一个由按钮组成的窗口,在单击每个按钮时,都会应用不同的皮肤样式,其中皮肤样式是通过在QSS(Qt样式表)中定义的。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class App(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 200, 100)
self.setWindowTitle('PyQt5 Button')
self.initUI()
def initUI(self):
self.setStyleSheet('background-color: white;')
buttonA = QPushButton('Set Skin 1', self)
buttonA.setGeometry(50, 20, 100, 30)
buttonA.clicked.connect(self.setSkin1)
buttonB = QPushButton('Set Skin 2', self)
buttonB.setGeometry(50, 60, 100, 30)
buttonB.clicked.connect(self.setSkin2)
self.show()
def setSkin1(self):
self.setStyleSheet('background-color: gray; color: white;')
def setSkin2(self):
self.setStyleSheet('background-color: blue; color: white;')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
在上述代码中,我们创建了一个QWidget类型的窗口,并在窗口中添加了两个QPushButton类型的按钮。当单击每个按钮时,将触发setSkin1和setSkin2方法,这些方法将应用不同的QSS样式来更改窗口的背景和字体颜色。
4. 示例2
在这个示例中,我们将创建单个单选按钮,当单击该按钮时,将更改应用程序的皮肤,并显示当前选定的皮肤。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton, QLabel
class App(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(100, 100, 200, 150)
self.setWindowTitle('PyQt5 Radio Button')
self.initUI()
def initUI(self):
rb1 = QRadioButton('Skin 1', self)
rb1.move(50, 20)
rb1.toggled.connect(self.onToggled)
self.label = QLabel('Selected Skin: None', self)
self.label.move(50, 100)
self.show()
def onToggled(self):
radioButton = self.sender()
if radioButton.isChecked():
self.setStyleSheet('background-color: %s;' % (radioButton.text()))
self.label.setText('Selected Skin: ' + radioButton.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())
在上述代码中,我们创建了一个QWidget类型的窗口,并在窗口中添加了一个QRadioButton和一个QLabel。当单选按钮被按下时,将触发onToggled方法,该方法将更改应用程序窗口的背景颜色,并在标签中显示当前选定的皮肤。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – 当单选按钮被按下时为其设置皮肤 - Python技术站