当我在QTextBrowser中按右键时,我需要突出显示鼠标指针下的单词。我已经为 QTextBrowser 实现了 showContextMenu 函数,用于鼠标右键单击。但是我无法突出显示鼠标指针下的单词并将其解压缩。我在网上找到了以下解决方案:
QTextCursor tc = txtBrwsr->textCursor();
tc.select(QTextCursor::WordUnderCursor);
QString word = tc.selectedText();
然而,它不起作用且单词是空的,我的目的是获取单词并突出显示它,即使用户在按下鼠标右键之前没有突出显示该单词
感谢任何帮助。
答案 0 :(得分:1)
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);
}
祝你好运。