如何失去 QTextEdit 的选择焦点?

Posted

技术标签:

【中文标题】如何失去 QTextEdit 的选择焦点?【英文标题】:How to lose selection focus of a QTextEdit? 【发布时间】:2016-01-05 11:47:07 【问题描述】:

我有一个只读的QTextEdit。我可以选择文本并复制它。 我需要做的:当用户处于选择模式(选择文本)时,如果他离开该区域(仍然按住鼠标左键)小部件必须失去焦点,选择焦点也必须结束。当鼠标退出越界时,我希望类似于鼠标释放。我试图设置这个:

rootWidget->clearFocus();
rootWidget->close();
rootWidget->releaseMouse();

但即使在视觉上小部件似乎没有焦点,我仍然会收到我的小部件的TextEdit::mouseMoveEvent()

我还尝试将焦点设置到虚拟小部件。虚拟小部件获得焦点,但我的 textedit 坐下获得 mouseMoveEvent()。

如何在不释放鼠标按钮的情况下完全失去小部件的焦点?

感谢您的任何建议!

【问题讨论】:

QWidget 有方法grabMouse()。尝试使用您的虚拟小部件调用它。然后拨打releaseMouse() 【参考方案1】:

您可以使用QWidget::setFocus() 将焦点放在其他内容上。您可能应该在更改焦点之前清除选择。

【讨论】:

但是如何清除选择呢?这是我的问题:) 抱歉。您可以尝试 2 件事:QTextEdit::moveCursor 或者您创建一个新的 QTextCursor 并使用 QTextEdit::setTextCursor。不要使用QTextEdit::textCursor(),因为它只会返回它的一个副本(之后您需要调用 setTextCursor)。

以上是关于如何失去 QTextEdit 的选择焦点?的主要内容,如果未能解决你的问题,请参考以下文章

具有不同文本颜色的 QTextEdit (Qt / C++)

Winform中Treeview控件失去焦点,如何将选择的节点还设置为高亮显示?

如何在 WinRT/UWP RichEditBox 中保持突出显示的文本失去焦点?

选择但失去焦点时更改 WPF treeViewItem 背景颜色

选择值后强制 FilteringSelect 失去焦点

从 TextField 选择组件、Material UI 和 React 手动失去焦点