未在禁用的 QCheckBox 上调用 mousePressEvent()

mousePressEvent() not called on a disabled QCheckBox

我正在尝试对 QCheckBox 进行子类化,使其在禁用时通过鼠标点击。当我的复选框未被禁用时(isEnabled()true),Qt 按预期调用它的 mousePressEvent()。当它被禁用时,呼叫不会发生。有什么办法战胜它吗?

您描述的确实是记录在案的 behavior. If you look at the source code,您会看到 QWidget::event 仅在启用小部件时调用 mousePressEvent

作为解决方案,您可以覆盖 event 而不是 mousePressEvent(QEvent *e) 并检查是否 e->type() == QEvent::MouseButtonPress.