我有一个自定义QTextEdit覆盖::mouseMoveEvent(QMouseEvent *e)
和::focusOutEvent(QFocusEvent *e)
. QTextEdit 的上下文是可选择的。在选择模式下,当用户超出 QTextEdit 的界限时,我想通过在 ::mouseMoveEvent 中以编程方式停止选择:
if(e->pos().y() < 0)
{
QTextEdit::focusOutEvent(new QFocusEvent(QFocusEvent::FocusOut));
}
我发现当用户释放鼠标时,会立即调用 focusOutEvent。
问题:即使我以编程方式调用 focusOutEvent,也根本没有调用 focusOutEvent。它仅在用户释放鼠标单击时调用。我也尝试过 mouseReleaseEvent 但这是同样的问题。
为什么不调用focusOutEvent?可以做什么?如果我的问题有另一种解决方案?谢谢!