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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Неудобное поведение сигнала selectionChanged в QGraphicsView  (Прочитано 12258 раз)
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« : Октябрь 25, 2016, 12:05 »

1. Если выделять одиночные элементы, то сигнал selectionChanged вылетает на нажатие кнопки мыши - хорошо
2. Если выделять много элементов с зажатым Ctrl, то сигнал selectionChanged вылетает на отпускании кнопки мыши и при условии неподвижности мыши - что неудобно
Неподвижность мыши как раз и трудно обеспечить, ведь при множественном выделении она скользит и хоть на пиксел да и сдвинется
Как сделать и в п.2 также выделение по нажатию ?

Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #1 : Ноябрь 02, 2016, 01:05 »

условии неподвижности мыши - что неудобно
это потому, что есть ещё один способ выделения - резиновый квадрат... нажать кнопку на пустом месте и тащить за угол квадрат, выделяя айтемы, которые он цепляет

там вроде была возможность выключить этот способ выделения, может быть это повлияет на реакцию на движение мыши

сорри, детали не помню, я с этим работал 2 года назад
Записан

2^7-1 == 127, задумайтесь...
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #2 : Ноябрь 07, 2016, 08:59 »

это потому, что есть ещё один способ выделения - резиновый квадрат... нажать кнопку на пустом месте и тащить за угол квадрат, выделяя айтемы, которые он цепляет

не подойдет резиновый квадрат т.к. нужные элементы могут попадать в него вместе с ненужными, например нужно выделить угловые элементы и пару центральных
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #3 : Ноябрь 07, 2016, 13:04 »

дело не в том, что подойдёт он или нет - он ЕСТЬ по-умолчанию, и для его отработки соответственно отслеживается перемещение мши с нажатой кнопкой
Записан

2^7-1 == 127, задумайтесь...
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #4 : Ноябрь 07, 2016, 18:55 »

ааа, понял, что он может мешать
надо подумать как отключить
Записан
Bepec
Гость
« Ответ #5 : Ноябрь 07, 2016, 19:31 »

Можно просто фильтр поставить и mouseMove с ctrl игнорить.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #6 : Ноябрь 08, 2016, 10:08 »

как так игнорить ?
ведь мышь с контролом выделяет элементы, что мне и нужно
Записан
Bepec
Гость
« Ответ #7 : Ноябрь 08, 2016, 13:42 »

Дык нажатие с ctrl будет работать. А движение с ctrl будет игнориться.
PS перечитал первый пост - конкретизируйте нужное вам поведение. А то там двояко трактовать можно Улыбающийся
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #8 : Ноябрь 08, 2016, 14:51 »

мне нужно чтобы при зажатом ctrl я мог выделять/убирать мышой элементы (например выделить 10 штук), ну как обычно
при этом сигнал выбранности элемента должен выдаваться на нажатие левой кнопки мыши

Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #9 : Ноябрь 08, 2016, 15:18 »

Чем вот это обосновано?

Цитировать
сигнал выбранности элемента должен выдаваться на нажатие левой кнопки мыши

Если нужно просто как-то визуально выделять выбранные объекты, то для этого не нужна обработка сигнала о том, что объект выбран.
Записан

2^7-1 == 127, задумайтесь...
Bepec
Гость
« Ответ #10 : Ноябрь 08, 2016, 15:55 »

Вы что-то непонятное для меня хотите...
Сигнал выдаётся при выделении элемента.
Вы же хотите чтоб он выдавался при отжатии левой кнопки мышки?

PS так заведите свой сигнал с нужным вам поведением...
« Последнее редактирование: Ноябрь 08, 2016, 18:16 от Bepec » Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #11 : Ноябрь 09, 2016, 08:25 »

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

Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #12 : Ноябрь 09, 2016, 09:47 »

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

Зачем?
Записан

2^7-1 == 127, задумайтесь...
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #13 : Ноябрь 09, 2016, 11:39 »

Зачем?

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

для примера можно взять файловый менеджер konquerro или nautilus - там сразу по клику выделение (с зажатым ctrl)

Записан
Bepec
Гость
« Ответ #14 : Ноябрь 09, 2016, 14:10 »

Не как, а зачем?

Зачем вам такое поведение? Вам так важны миллисекунды?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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