修复:

- ToggleSwitch 开关点击无反应:自绘 QCheckBox 在部分样式引擎下默认点击不触发切换,改为显式处理鼠标按下事件切换并重绘
This commit is contained in:
RoyirinRosmontis
2026-08-24 12:21:00 +08:00
parent 2652213a10
commit 54385d72ce
+9
View File
@@ -1564,6 +1564,15 @@ class ToggleSwitch(QCheckBox):
p.drawEllipse(QRectF(knob_x, 2.0, 18.0, 18.0)) p.drawEllipse(QRectF(knob_x, 2.0, 18.0, 18.0))
p.end() p.end()
def mousePressEvent(self, e):
# 显式处理点击切换:自绘控件在部分样式引擎下默认点击不触发
if e.button() == Qt.LeftButton:
self.setChecked(not self.isChecked())
self.repaint()
e.accept()
return
super().mousePressEvent(e)
# ── 状态指示灯(小圆点) ─────────────────────────────── # ── 状态指示灯(小圆点) ───────────────────────────────
class StatusDot(QLabel): class StatusDot(QLabel):