📌  相关文章
📜  PyQt5 - 按下时设置单选按钮指示器皮肤(1)

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

PyQt5 - 按下时设置单选按钮指示器皮肤

在 Pyqt5 中,单选按钮默认的指示器颜色和样式是固定的,但是我们可以通过自定义样式表来改变它们的颜色和样式。

本文将介绍如何在按钮按下时,设置单选按钮指示器皮肤。

步骤
1.导入 PyQt5 模块

为了使用 PyQt5 来创建GUI,我们需要先导入 PyQt5 模块:

from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
from PyQt5.QtCore import Qt
2.创建窗口并添加单选按钮

我们需要首先创建一个窗口并添加单选按钮:

class Window(QWidget):
    def __init__(self):
        super().__init__()

        # 设置窗口标题和大小
        self.setWindowTitle("QtRadio Button Example")
        self.setGeometry(100, 100, 300, 200)

        # 创建单选按钮并设置其默认状态
        self.radio_button = QRadioButton("单选按钮", self)
        self.radio_button.move(50, 50)
        self.radio_button.setChecked(True)

        # 连接信号和槽函数
        self.radio_button.clicked.connect(self.change_skin)
3.创建一个槽函数以更改颜色

接下来,我们需要创建一个槽函数,当单选按钮被按下时将更改其颜色:

    def change_skin(self):
        # 当单选按钮被按下时,更改指示器的颜色
        if self.radio_button.isChecked():
            self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: red;}")
        else:
            self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: green;}")

在这个槽函数中,我们首先判断单选按钮的状态是否被选中(isChecked()) 。如果选中,则更改指示器的背景颜色为红色,否则更改为绿色。更改样式表的方法是使用 setStyleSheet() 函数。

4.运行应用程序

最后,我们创建一个 QApplication 对象并运行应用程序:

if __name__ == '__main__':
    app = QApplication([])
    window = Window()
    window.show()
    app.exec_()
完整代码
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
from PyQt5.QtCore import Qt


class Window(QWidget):
    def __init__(self):
        super().__init__()

        # 设置窗口标题和大小
        self.setWindowTitle("QtRadio Button Example")
        self.setGeometry(100, 100, 300, 200)

        # 创建单选按钮并设置其默认状态
        self.radio_button = QRadioButton("单选按钮", self)
        self.radio_button.move(50, 50)
        self.radio_button.setChecked(True)

        # 连接信号和槽函数
        self.radio_button.clicked.connect(self.change_skin)

    def change_skin(self):
        # 当单选按钮被按下时,更改指示器的颜色
        if self.radio_button.isChecked():
            self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: red;}")
        else:
            self.radio_button.setStyleSheet("QRadioButton::indicator {background-color: green;}")

if __name__ == '__main__':
    app = QApplication([])
    window = Window()
    window.show()
    app.exec_()

运行该代码,单击单选按钮时,指示器的颜色将更改为红色或绿色。