LINUX.ORG.RU

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


0

3

Очень мешает в работе (qtcreator) что контекстное меню выскакивает сразу по нажатию кнопки мыши, а не по отпусканию (часто выбирается самый первый элемент меню)
Как изменить данное поведение - чтобы меню появлялось по отпусканию кнопки ? Настройка (если есть) былабы предпочтительна, но и пересборка qt также подойдет (но не знаю где править)

★★★★★

Ответ на: комментарий от x905

почему либу? У тебя же речь про креатор. Если же всё-таки про конечное приложение, то ты сам можешь контролировать клики и вызывать меню когда хочешь. См. http://qt-project.org/doc/qt-4.8/qwidget.html#mousePressEvent

alex_custov ★★★★★
()
Ответ на: комментарий от alex_custov

почему либу?

потому что думал надо править момент выдачи customContextMenuRequested, чтобы меню срабатывало по отпусканию
и чтобы не патчить креатор во многих местах

и mousePressEvent неудобно самому обрабатывать т.к. придется наследоватся везде, где меню нужно

x905 ★★★★★
() автор топика

Это вам привет из Макоси. Идея в том, что сначала нажимаешь правую кнопку мыши, по которой появляется меню, потом, не отпуская правую кнопку, выбираешь мышью нужный пункт меню, потом отпускаешь кнопку мыши и меню срабатывает. Итого одно нажатие вместо двух. Конечно со своими недостатками. Меня тоже достаёт это постоянное выбирание первого пункта из-за мелких флуктуация мыши. Хочу как в тёплой ламповой венде, там Криатор ведёт себя нормально. Вобщем, разберёшься — отпишись.

Dendy ★★★★★
()
Ответ на: комментарий от Dendy

привет из Макоси

В приложениях на Tk так же, как минимум в тех, которыми я пользуюсь. Со временем привыкаешь, даже удобно.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

В приложениях на Tk так же, как минимум в тех, которыми я пользуюсь. Со временем привыкаешь, даже удобно.

К слову сказать, menu bar в том же Qt имеет такое же поведение. Хочешь — кликнул, а хочешь — нажал-повёл-отпустил. Пользуюсь, удобно. Только в случае с выпадающим контекстным меню по правому клику это работает плохо, из-за слабого дёргания мыши на один пиксель между нажал-отпустил оно часто успевает щёлкнуть по первому пункту меню.

Dendy ★★★★★
()

Это удобное поведение. Не надо портить то, что и так хорошо работает. Если проблема в том, что ты случайно выбираешь какой-либо пункт из меню, то купи нормальную мышку без залипающей кнопки.

peregrine ★★★★★
()
Ответ на: комментарий от Dendy

Это вам привет из Макоси.

да, логика понятна, но неудобна
осилю исправить - отпишу, но не быстро разберусь

x905 ★★★★★
() автор топика
Ответ на: комментарий от peregrine

то купи нормальную мышку без залипающей кнопки.

не в мыше дело (A4Tech X7), делаю так:
1. нажимаю правой
2. немного сдвигается мышь (уже веду курсор чуть чуть на пиксел или рука дрогнула немного) [перенастроить мышь не предлагать т.к ездит удобно, руку можно сменить, но еще чип не изобрели ) ]
3. отпускаю правую
4. первый пункт срабатывает

Обычно смысла первого пункта в креаторе нет для меня (хот кей висит), т.к. двигаю сразу с другому

x905 ★★★★★
() автор топика
Ответ на: комментарий от x905

Значит мышка не удобная для руки, что она всё время куда-то едет. У меня была bluetooth мышка от M$, была такая проблема, как у тебя, сменил на настоящую лазерную (не светодиодную, которых пруд пруди с яркой лампочкой внизу) Logitech m705, кажется, + коврик в мелкую серую клеточку для лазерных мышек, больше такой проблемы нет.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Значит мышка не удобная для руки

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

x905 ★★★★★
() автор топика
Ответ на: комментарий от x905

Это не ваша проблема, а Криатора. Дело ведь не конкретно в меню. К примеру, в Qt предусмотрен параметр http://qt-project.org/doc/qt-5/qapplication.html#startDragDistance-prop, чтобы исключить возможность случайно потянуть контрол при клике. Ведь случайные движения руки всегда присутствуют, особенно на очень чувствительных мышках и ковриках, а в момент нажатия на кнопку микродвижения мыши в порядке вещей. Так что здесь поведение должно быть взаимоисключающее: или только нажал-повёл-отпустил, или только кликнул-выбрал-кликнул.

Dendy ★★★★★
()
Ответ на: комментарий от Dendy

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

тот параметр разве тут применим ?

надо обдумать

x905 ★★★★★
() автор топика

Боян, нужно патчить Qt, нифига не удобно.

bhfq ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.