当我在 QTextBrowser 中右键单击时,我需要突出显示并获取鼠标指针下的单词。我已经实施了显示上下文菜单函数为QText浏览器对于鼠标右键单击的事情。但是我无法突出显示鼠标指针下的单词并提取它。我在网上找到了如下解决方案:
QTextCursor tc = txtBrwsr->textCursor();
tc.select(QTextCursor::WordUnderCursor);
QString word = tc.selectedText();
但是,它不起作用并且word是空的,我的目的是获取单词并突出显示它,即使用户在按鼠标右键单击之前没有突出显示该单词。
任何帮助表示赞赏。
textCursor()
函数返回 QTextCursor 的副本。
你需要打电话setTextCursor()
一切改变之后。
这是如何在单击右键后突出显示鼠标光标下的单词的示例。
MyTextBrowser.h
class MyTextBrowser : public QTextBrowser {
// ...
protected:
void mousePressEvent(QMouseEvent *mouseEvent);
// ...
};
MyTextBrowser.cpp
void MyTextBrowser::mousePressEvent(QMouseEvent *mouseEvent) {
if (Qt::RightButton == mouseEvent->button()) {
QTextCursor textCursor = cursorForPosition(mouseEvent->pos());
textCursor.select(QTextCursor::WordUnderCursor);
setTextCursor(textCursor);
QString word = textCursor.selectedText();
qDebug() << word;
}
QTextBrowser::mousePressEvent(mouseEvent);
}
祝你好运。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)