0
QCheckBox
をサブクラス化しようとすると、無効にするとマウスのクリックが通過します。チェックボックスが無効になっていない場合(isEnabled()
がtrue
)、QtはmousePressEvent()
を期待通りに呼び出します。無効にすると、呼び出しは行われません。どのようにそれを打ち負かすか?無効になっているQCheckBoxでmousePressEvent()が呼び出されていない
QCheckBox
をサブクラス化しようとすると、無効にするとマウスのクリックが通過します。チェックボックスが無効になっていない場合(isEnabled()
がtrue
)、QtはmousePressEvent()
を期待通りに呼び出します。無効にすると、呼び出しは行われません。どのようにそれを打ち負かすか?無効になっているQCheckBoxでmousePressEvent()が呼び出されていない
実際に記載されているのはbehaviorです。 source codeを見ると、QWidget::event
はウィジェットが有効になっている場合にのみmousePressEvent
を呼び出します。
解決策として、mousePressEvent(QEvent *e)
の代わりにevent
を無効にして、e->type() == QEvent::MouseButtonPress
をチェックしてください。