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

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

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: как переопределить mouseDoubleClickEvent?  (Прочитано 25045 раз)
mutineer
Гость
« Ответ #15 : Декабрь 31, 2012, 15:39 »

А что ты ожидал вообще? Ты объявил новую пустую реакцию на сигнал. Старые реакции никуда не делись (как тебе выше уже написали). Что измениться должно было?
Записан
Senia_Bezrubashkin
Гость
« Ответ #16 : Декабрь 31, 2012, 16:07 »

Ну, я рассчитывал, что старая реакция, как минимум, поломается (и этим убедиться, что соединение состоялось). А по поводу сигналов прочитал, что они высылаются из классов, которые их содержат, а сендер - указатель на объект, высылающий сигнал, вот и решил, что это this, т. к. у меня все находится в одном классе (именно по-этому я в хедере объявлял doubleClicked(), думал таким образом я его переопределяю (ошибся, что сделал это в private секции (также прочитал, что сигнал определять не надо, достаточно объявить))). Вообщем, подзапутался окончательно.
« Последнее редактирование: Декабрь 31, 2012, 16:20 от Senia_Bezrubashkin » Записан
mutineer
Гость
« Ответ #17 : Декабрь 31, 2012, 16:28 »

Старая реакция никуда не денется
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #18 : Декабрь 31, 2012, 17:51 »

отправителем сигнала в твоём случае является твой QListView.

если тебе нужно, чтобы вью не редактировался при двойном клике, то просто отключи редактирование через setEditTriggers()
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Декабрь 31, 2012, 18:42 »

Ну, я рассчитывал, что старая реакция, как минимум, поломается (и этим убедиться, что соединение состоялось). А по поводу сигналов прочитал, что они высылаются из классов, которые их содержат, а сендер - указатель на объект, высылающий сигнал, вот и решил, что это this, т. к. у меня все находится в одном классе (именно по-этому я в хедере объявлял doubleClicked(), думал таким образом я его переопределяю (ошибся, что сделал это в private секции (также прочитал, что сигнал определять не надо, достаточно объявить))). Вообщем, подзапутался окончательно.
Видимо Вы полагали что сигналы - это что-то типа virtual механизма, но это не так. Не беда, разберетесь.
Лично я не считаю систему слот-сигнал шедевром инженерной мысли, но знать ее в любом случае надо
Записан
Senia_Bezrubashkin
Гость
« Ответ #20 : Декабрь 31, 2012, 19:11 »

отправителем сигнала в твоём случае является твой QListView.

если тебе нужно, чтобы вью не редактировался при двойном клике, то просто отключи редактирование через setEditTriggers()
В QListView не нашел такого метода, но не суть... и еще... получается, если не отключать редактирование, даже если мой код заработает, то к его действиям будет примешиваться и старое поведение (редактирование)... фигня какая-то... думаю так не должно быть.
В любом случае проверить пока не получается, по причине отсутствия рабочего кода.
Записан
mutineer
Гость
« Ответ #21 : Декабрь 31, 2012, 19:13 »

отправителем сигнала в твоём случае является твой QListView.

если тебе нужно, чтобы вью не редактировался при двойном клике, то просто отключи редактирование через setEditTriggers()
В QListView не нашел такого метода, но не суть...

Плохо искал: http://doc.qt.digia.com/4.7/qlistview-members.html
Записан
Senia_Bezrubashkin
Гость
« Ответ #22 : Декабрь 31, 2012, 19:23 »

Упс... сорри.
Записан
Senia_Bezrubashkin
Гость
« Ответ #23 : Январь 09, 2013, 22:29 »

получается, если не отключать редактирование, даже если мой код заработает, то к его действиям будет примешиваться и старое поведение (редактирование)... фигня какая-то... думаю так не должно быть.
Ну, надо же... реально так и есть.
Записан
Dancing_on_water
Гость
« Ответ #24 : Январь 10, 2013, 08:33 »

Если нужно отключить редактирование какой-то кокретной колонки или поля, то в классе, наследующимся от Qlistview надо переопределить метод flags
Записан
Senia_Bezrubashkin
Гость
« Ответ #25 : Январь 10, 2013, 12:06 »

Отключить редактирование проблем нет... (уже рассказали как). Просто для меня все это как-то не логично... ну, да бог с ним, я уже двигаюсь дальше.
Записан
Senia_Bezrubashkin
Гость
« Ответ #26 : Январь 20, 2013, 13:14 »

думаю тебе больше подойдет сигнал void QAbstractItemView::doubleClicked ( const QModelIndex & index ) если используешь модель/представление.
Сделал по этому сигналу... работает. Но поведение не совсем корректное: на даблклик правой кнопкой реагирует также. Видимо, все-таки нужно переопределять mouseDoubleClickEvent и выставлять условие на кнопку мыши. Или есть способ разобраться с клавишами и по QAbstractItemView::doubleClicked ()?
« Последнее редактирование: Январь 20, 2013, 13:19 от Senia_Bezrubashkin » Записан
Bepec
Гость
« Ответ #27 : Январь 21, 2013, 00:02 »

Бгг. Читаем название слота - двойной клик мышкой. Он работает корректно Улыбающийся
Записан
Senia_Bezrubashkin
Гость
« Ответ #28 : Январь 21, 2013, 10:31 »

Бгг. Читаем название слота - двойной клик мышкой. Он работает корректно Улыбающийся
Какого слота? Сигнал, слот - разницу ощущаем? А двойной клик мышкой, как правой, так и левой клавишей - выдает одинаковый сигнал. Так что делай дальше бгг.  
« Последнее редактирование: Январь 21, 2013, 10:49 от Senia_Bezrubashkin » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #29 : Январь 21, 2013, 16:58 »

смутно представляю кому может придти в голову кликать 2 раза правой кнопкой мыши или колёсиком. но в таком случае тебе только остается mouseDoubleClickEvent() и анализировать нажатую клавишу.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  


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