Russian Qt Forum
Сентябрь 30, 2024, 22:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: фильтрация MouseButtonDblClick QTextEdit'a  (Прочитано 4890 раз)
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);
                        ...
}
}
}

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

Как мне получить доступ к двойному клику левой кнопки мыши на этом эдите?
Записан
Tertium Organum
Гость
« Ответ #1 : Октябрь 16, 2008, 12:57 »

никто не знает? во блин

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

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

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

Сообщений: 2901



Просмотр профиля WWW
« Ответ #2 : Октябрь 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);
                        ...
}
}
}

Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Tertium Organum
Гость
« Ответ #3 : Октябрь 16, 2008, 17:27 »

спасибо огромное! это то что надо.
эх, вот оно - незнание базы, я куте использую только как гуишную морду, проект сам на фирмовом движке, вот и не в курсе тонкостей. едит - это композит?
Записан
Hort
Гость
« Ответ #4 : Октябрь 17, 2008, 21:28 »

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

QTextEdit - это просто СкроллАреа в которую запихнут виджет для редактирования. а через вьюпорт ты обращаешся к этому виджету
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.199 секунд. Запросов: 23.