Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: yarick от Сентябрь 30, 2012, 11:54



Название: QTextEdit - с помощью html обрабатывать событие over над тегом
Отправлено: yarick от Сентябрь 30, 2012, 11:54
Я хочу, чтобы по наведению мышки над <span>text</span> выполнялась некоторая функция. Как это сделать?


Название: Re: QTextEdit - с помощью html обрабатывать событие over над тегом
Отправлено: navrocky от Сентябрь 30, 2012, 12:04
перехватить QEvent::MouseMove, из точки получить позицию в тексте, дальше делать то что тебе надо.

@sa QObject::installEventFilter, QEvent::MouseMove, QMouseEvent::pos(),  QTextEdit::cursorForPosition, QTextCursor::position, QRegExp


Название: Re: QTextEdit - с помощью html обрабатывать событие over над тегом
Отправлено: yarick от Сентябрь 30, 2012, 13:30
Спасибо, это я знаю, но как мне идентифицировать конкретное слово, например <span id="1">text</span> - как мне по позиции определить что именно этот span был выбран?


Название: Re: QTextEdit - с помощью html обрабатывать событие over над тегом
Отправлено: navrocky от Сентябрь 30, 2012, 15:30
Ну пройтись влево, вправо по тексту.

Или можно спуститься до уровня QTextDocument и QTextBlock. Кстати, QTextCursor возвращает блок в котором он стоит. Текст внутри <span>, по идее, должен быть оформлен в виде отдельного блока, но это только моя догадка.