gpt4 book ai didi

c++ - 如何在 QPlainTextEdit 中为突出显示的字符串创建工具提示

转载 作者:行者123 更新时间:2023-11-30 03:33:39 25 4
gpt4 key购买 nike

我有一个 QPlainTextEdit,现在我想在其中突出显示一些单词,当我用鼠标悬停在它上面时,它会显示一个工具提示,其中包含关于这个突出显示的单词的描述或类似的东西,在 QT IDE 中类似这样

enter image description here

但我不知道如何开始这个所以任何想法、代码或类似的项目都可以检查这个。

最佳答案

对于这种情况,我将创建一个继承自 QPlainTextEdit 的类,重新实现 event() 方法并使用 setMouseTracking() 启用鼠标跟踪

plaintextedit.h

#ifndef PLAINTEXTEDIT_H
#define PLAINTEXTEDIT_H

#include <QPlainTextEdit>

class PlainTextEdit : public QPlainTextEdit
{
public:
PlainTextEdit(QWidget *parent=0);

bool event(QEvent *event);
};

#endif // PLAINTEXTEDIT_H

plaintextedit.cpp

#include "plaintextedit.h"
#include <QToolTip>


PlainTextEdit::PlainTextEdit(QWidget *parent):QPlainTextEdit(parent)
{
setMouseTracking(true);
}

bool PlainTextEdit::event(QEvent *event)
{
if (event->type() == QEvent::ToolTip)
{
QHelpEvent* helpEvent = static_cast<QHelpEvent*>(event);
QTextCursor cursor = cursorForPosition(helpEvent->pos());
cursor.select(QTextCursor::WordUnderCursor);
if (!cursor.selectedText().isEmpty())
QToolTip::showText(helpEvent->globalPos(), /*your text*/QString("%1 %2").arg(cursor.selectedText()).arg(cursor.selectedText().length()) );

else
QToolTip::hideText();
return true;
}
return QPlainTextEdit::event(event);
}

完整代码:Here

关于c++ - 如何在 QPlainTextEdit 中为突出显示的字符串创建工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42677963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com