📅  最后修改于: 2023-12-03 15:18:46.996000             🧑  作者: Mango
在PyQt5中,我们可以使用CSS样式表来自定义单选按钮的背景颜色,以便在悬停时显示不同的背景颜色。
首先,我们需要定义CSS样式表。在这个例子中,我们定义了两个不同的样式,一个是悬停时的样式,一个是默认的样式:
hover_style = """
QRadioButton::indicator:hover {
background-color: #A9A9A9;
}
"""
default_style = """
QRadioButton::indicator {
width: 20px;
height: 20px;
}
"""
这里,我们使用了QRadioButton::indicator
选择器来选中单选按钮的指示器部分。在样式表中,我们为其设置了不同的宽度和高度,以及悬停时的背景颜色。
接下来,我们需要将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_()
此代码将显示两个单选按钮,当鼠标悬停在单选按钮上时,其背景颜色将改变。