📌  相关文章
📜  PyQt5 - 悬停时单选按钮的背景颜色(1)

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

PyQt5 - 悬停时单选按钮的背景颜色

在PyQt5中,我们可以使用CSS样式表来自定义单选按钮的背景颜色,以便在悬停时显示不同的背景颜色。

设置CSS样式

首先,我们需要定义CSS样式表。在这个例子中,我们定义了两个不同的样式,一个是悬停时的样式,一个是默认的样式:

hover_style = """
    QRadioButton::indicator:hover {
        background-color: #A9A9A9;
    }
"""

default_style = """
    QRadioButton::indicator {
        width: 20px;
        height: 20px;
    }
"""

这里,我们使用了QRadioButton::indicator选择器来选中单选按钮的指示器部分。在样式表中,我们为其设置了不同的宽度和高度,以及悬停时的背景颜色。

应用CSS样式

接下来,我们需要将CSS样式应用到我们的单选按钮上。我们可以使用setStyleSheet()方法来设置样式表:

button = QRadioButton("Button")
button.setStyleSheet(default_style + hover_style)

通过将默认样式和悬停时的样式合并在一起,我们可以通过鼠标悬停来改变单选按钮的背景颜色。

完整示例代码
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QRadioButton
from PyQt5.QtCore import Qt

app = QApplication([])
window = QWidget()
layout = QVBoxLayout()

hover_style = """
    QRadioButton::indicator:hover {
        background-color: #A9A9A9;
    }
"""

default_style = """
    QRadioButton::indicator {
        width: 20px;
        height: 20px;
    }
"""

button1 = QRadioButton("Button 1")
button1.setStyleSheet(default_style + hover_style)
button2 = QRadioButton("Button 2")
button2.setStyleSheet(default_style + hover_style)

layout.addWidget(button1)
layout.addWidget(button2)

window.setLayout(layout)
window.show()

app.exec_()

此代码将显示两个单选按钮,当鼠标悬停在单选按钮上时,其背景颜色将改变。