如何失去 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 中保持突出显示的文本失去焦点?