Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Tertium Organum от Октябрь 15, 2008, 19:29



Название: фильтрация MouseButtonDblClick QTextEdit'a
Отправлено: Tertium Organum от Октябрь 15, 2008, 19:29
такая передряга:
перехватываю у QTextEdit'а QEvent::MouseButtonDblClick  через eventFilter:

Код:
ui.logger->installEventFilter(this);
....
bool CMainWnd::eventFilter(QObject *target, QEvent *event)
{
if (target == ui.logger)
{
if (event->type() == QEvent::MouseButtonDblClick)
{
QMouseEvent * mouse_event = static_cast<QMouseEvent *>(event);
                        ...
}
}
}

В общем только двойной клик средней кнопки приходит. Правая - это контекстное меню, левая - двойной клик выделяет слово или строку.

Как мне получить доступ к двойному клику левой кнопки мыши на этом эдите?


Название: Re: фильтрация MouseButtonDblClick QTextEdit'a
Отправлено: Tertium Organum от Октябрь 16, 2008, 12:57
никто не знает? во блин

ну пока сделал кутыло - в едите тип появления меню - сустомное меню. Это дает обрабатывать правый двойной клик. ну вот собственно.

но это не выход - очень неудобно сначала поставить левой клавишей курсор на нужную строку лога, потом двойным правым искать это место в схеме

хотелось просто сделать - как в Visual Studio - компиляция выдает список строк с ошибками, в которых коды, имена файлов и номера строк. кликаем два раза на ошибке - перекидываемся в тот файл и то место, где ошибка. Просто система в чем то аналогичная, хотелось и аналогичный функционал


Название: Re: фильтрация MouseButtonDblClick QTextEdit'a
Отправлено: pastor от Октябрь 16, 2008, 13:35
А вы пробывали фильтр повесить на вьюпорт?

Код:
ui.logger->viewport()->installEventFilter(this);

....
bool CMainWnd::eventFilter(QObject *target, QEvent *event)
{
if (target == ui.logger->viewport())
{
if (event->type() == QEvent::MouseButtonDblClick)
{
QMouseEvent * mouse_event = static_cast<QMouseEvent *>(event);
                        ...
}
}
}



Название: Re: фильтрация MouseButtonDblClick QTextEdit'a
Отправлено: Tertium Organum от Октябрь 16, 2008, 17:27
спасибо огромное! это то что надо.
эх, вот оно - незнание базы, я куте использую только как гуишную морду, проект сам на фирмовом движке, вот и не в курсе тонкостей. едит - это композит?


Название: Re: фильтрация MouseButtonDblClick QTextEdit'a
Отправлено: Hort от Октябрь 17, 2008, 21:28
спасибо огромное! это то что надо.
эх, вот оно - незнание базы, я куте использую только как гуишную морду, проект сам на фирмовом движке, вот и не в курсе тонкостей. едит - это композит?

QTextEdit - это просто СкроллАреа в которую запихнут виджет для редактирования. а через вьюпорт ты обращаешся к этому виджету