0
私はQPlainTextEditを持っていて、その中にいくつかの単語をハイライト表示しています。マウスでマウスを動かすと、 QT IDEで、このようなワード何かが
が、私はこれがそう任意のアイデア、コードや同様のプロジェクトは、私が作成されます。このケースでは、事前QplainTextEditでハイライトされた文字列のツールチップを作成する方法QT
私はQPlainTextEditを持っていて、その中にいくつかの単語をハイライト表示しています。マウスでマウスを動かすと、 QT IDEで、このようなワード何かが
が、私はこれがそう任意のアイデア、コードや同様のプロジェクトは、私が作成されます。このケースでは、事前QplainTextEditでハイライトされた文字列のツールチップを作成する方法QT
にこの
感謝をチェックするために開始する方法がわかりませんQPlainTextEditから継承するクラスで、event()
メソッドを再実装し、マウストラッキングを有効にします
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);
}
setMouseTracking()
番目の完全なコード:Here
はこれは本当に便利な答えてくれてありがとうしかしにどのような方法があります単語を強調表示するだけを選択しますか?任意のオプションがある場合はcursor.select(QTextCursor :: Highlight);またはそのようなもの –