📅  最后修改于: 2023-12-03 14:45:50.957000             🧑  作者: Mango
在 PyQt5 中, 我们可以为单选按钮设置悬停时更改选中状态的颜色, 以增强用户体验.
from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton
from PyQt5.QtGui import QCursor, QColor
from PyQt5.QtCore import Qt
app = QApplication([])
window = QWidget()
button = QRadioButton('Radio Button')
button.setStyleSheet('QRadioButton::indicator:hover:checked { background-color: red; }')
def on_enter():
if button.isChecked():
button.setStyleSheet('QRadioButton::indicator:checked { background-color: red; }')
else:
button.setStyleSheet('QRadioButton::indicator:hover { background-color: yellow; }')
def on_leave():
button.setStyleSheet('QRadioButton::indicator:hover:checked { background-color: red; }')
button.setStyleSheet('QRadioButton::indicator:checked { background-color: blue; }')
button.enterEvent = on_enter
button.leaveEvent = on_leave
window.setFixedSize(300, 200)
button.setParent(window)
button.move(100, 50)
window.show()
app.exec_()
QRadioButton::indicator:hover:checked
表示鼠标悬停且单选按钮被选中的情况.QRadioButton::indicator:hover
表示鼠标悬停但单选按钮未被选中的情况.QRadioButton::indicator:checked
表示单选按钮被选中的情况.button.isChecked()
表示单选按钮当前是否被选中.enterEvent
和 leaveEvent
中.