Russian Qt Forum
Ноябрь 24, 2024, 07:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
как переопределить mouseDoubleClickEvent?
Страниц:
1
[
2
]
3
4
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: как переопределить mouseDoubleClickEvent? (Прочитано 25323 раз)
mutineer
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #15 :
Декабрь 31, 2012, 15:39 »
А что ты ожидал вообще? Ты объявил новую пустую реакцию на сигнал. Старые реакции никуда не делись (как тебе выше уже написали). Что измениться должно было?
Записан
Senia_Bezrubashkin
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #16 :
Декабрь 31, 2012, 16:07 »
Ну, я рассчитывал, что старая реакция, как минимум, поломается (и этим убедиться, что соединение состоялось). А по поводу сигналов прочитал, что они высылаются из классов, которые их содержат, а сендер - указатель на объект, высылающий сигнал, вот и решил, что это this, т. к. у меня все находится в одном классе (именно по-этому я в хедере объявлял doubleClicked(), думал таким образом я его переопределяю (ошибся, что сделал это в private секции (также прочитал, что сигнал определять не надо, достаточно объявить))). Вообщем, подзапутался окончательно.
«
Последнее редактирование: Декабрь 31, 2012, 16:20 от Senia_Bezrubashkin
»
Записан
mutineer
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #17 :
Декабрь 31, 2012, 16:28 »
Старая реакция никуда не денется
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #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
Сообщений: 11445
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #19 :
Декабрь 31, 2012, 18:42 »
Цитата: Senia_Bezrubashkin от Декабрь 31, 2012, 16:07
Ну, я рассчитывал, что старая реакция, как минимум, поломается (и этим убедиться, что соединение состоялось). А по поводу сигналов прочитал, что они высылаются из классов, которые их содержат, а сендер - указатель на объект, высылающий сигнал, вот и решил, что это this, т. к. у меня все находится в одном классе (именно по-этому я в хедере объявлял doubleClicked(), думал таким образом я его переопределяю (ошибся, что сделал это в private секции (также прочитал, что сигнал определять не надо, достаточно объявить))). Вообщем, подзапутался окончательно.
Видимо Вы полагали что сигналы - это что-то типа virtual механизма, но это не так. Не беда, разберетесь.
Лично я не считаю систему слот-сигнал шедевром инженерной мысли, но знать ее в любом случае надо
Записан
Senia_Bezrubashkin
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #20 :
Декабрь 31, 2012, 19:11 »
Цитата: kambala от Декабрь 31, 2012, 17:51
отправителем сигнала в твоём случае является твой QListView.
если тебе нужно, чтобы вью не редактировался при двойном клике, то просто отключи редактирование через setEditTriggers()
В QListView не нашел такого метода, но не суть... и еще... получается, если не отключать редактирование, даже если мой код заработает, то к его действиям будет примешиваться и старое поведение (редактирование)... фигня какая-то... думаю так не должно быть.
В любом случае проверить пока не получается, по причине отсутствия рабочего кода.
Записан
mutineer
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #21 :
Декабрь 31, 2012, 19:13 »
Цитата: Senia_Bezrubashkin от Декабрь 31, 2012, 19:11
Цитата: kambala от Декабрь 31, 2012, 17:51
отправителем сигнала в твоём случае является твой QListView.
если тебе нужно, чтобы вью не редактировался при двойном клике, то просто отключи редактирование через setEditTriggers()
В QListView не нашел такого метода, но не суть...
Плохо искал:
http://doc.qt.digia.com/4.7/qlistview-members.html
Записан
Senia_Bezrubashkin
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #22 :
Декабрь 31, 2012, 19:23 »
Упс... сорри.
Записан
Senia_Bezrubashkin
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #23 :
Январь 09, 2013, 22:29 »
Цитата: Senia_Bezrubashkin от Декабрь 31, 2012, 19:11
получается, если не отключать редактирование, даже если мой код заработает, то к его действиям будет примешиваться и старое поведение (редактирование)... фигня какая-то... думаю так не должно быть.
Ну, надо же... реально так и есть.
Записан
Dancing_on_water
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #24 :
Январь 10, 2013, 08:33 »
Если нужно отключить редактирование какой-то кокретной колонки или поля, то в классе, наследующимся от Qlistview надо переопределить метод flags
Записан
Senia_Bezrubashkin
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #25 :
Январь 10, 2013, 12:06 »
Отключить редактирование проблем нет... (уже рассказали как). Просто для меня все это как-то не логично... ну, да бог с ним, я уже двигаюсь дальше.
Записан
Senia_Bezrubashkin
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #26 :
Январь 20, 2013, 13:14 »
Цитата: kambala от Декабрь 29, 2012, 03:29
думаю тебе больше подойдет сигнал void QAbstractItemView::doubleClicked ( const QModelIndex & index ) если используешь модель/представление.
Сделал по этому сигналу... работает. Но поведение не совсем корректное: на даблклик правой кнопкой реагирует также. Видимо, все-таки нужно переопределять mouseDoubleClickEvent и выставлять условие на кнопку мыши. Или есть способ разобраться с клавишами и по QAbstractItemView::doubleClicked ()?
«
Последнее редактирование: Январь 20, 2013, 13:19 от Senia_Bezrubashkin
»
Записан
Bepec
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #27 :
Январь 21, 2013, 00:02 »
Бгг. Читаем название слота - двойной клик мышкой. Он работает корректно
Записан
Senia_Bezrubashkin
Гость
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #28 :
Январь 21, 2013, 10:31 »
Цитата: Bepec от Январь 21, 2013, 00:02
Бгг. Читаем название слота - двойной клик мышкой. Он работает корректно
Какого слота? Сигнал, слот - разницу ощущаем? А двойной клик мышкой, как правой, так и левой клавишей - выдает одинаковый сигнал. Так что делай дальше бгг.
«
Последнее редактирование: Январь 21, 2013, 10:49 от Senia_Bezrubashkin
»
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: как переопределить mouseDoubleClickEvent?
«
Ответ #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
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...