| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Создаю контекстное меню. Не пашут Shortcut'ы |
| Автор: EKoshelev 26.5.2015, 10:03 | ||||
В ассистанте для добавления опции в контекстное меню кроме прочего есть такой метод:
Пишу такой код:
Т. е. пытаюсь задать горячую клавишу четырьмя способами. Менюха показывается и правильно работает, а горячие клавиши - нет. Подскажите что я делаю не правильно. |
| Автор: Guinness 26.5.2015, 11:57 |
| Возможно, идея идиотская, но я бы попробовал. Попробуйте убрать знак амперсанда перед названиями QAction. Если не прокатит, то нужно пробовать нажимать shorcut'ы при различных фокусах элементов. К примеру нажать по главному окну, понажимать shorcut'ы, нажать на элемент ListView, повторить процедуру. Добавлено через 4 минуты и 37 секунд И ещё выведите в консоль или куда-нибудь список http://doc.qt.io/qt-5/qaction.html#shortcuts, чтобы точно убедиться, что они присвоились QAction'ам. |
| Автор: EKoshelev 26.5.2015, 14:13 |
| Guinness, амперсанды убрал, фокусы менял, шоткаты присваиваются. Но нифига не пашет. Увы, блин... |
| Автор: Guinness 26.5.2015, 15:50 | ||||
EKoshelev, порылся у себя в коде. Работают вот такие назначения:
Остальное назначал через QtDesigner. Он делает так:
К несчастью, сейчас пробовать Ваш код времени нет, но я надеюсь что-то из приведенного мной натолкнёт Вас на решение проблемы. |
| Автор: Guinness 27.5.2015, 08:57 |
| Я что подумал, а Вы где тестируете своё приложение? Пробовали отлаживать на чистой ОС на виртуалке? |
| Автор: EKoshelev 27.5.2015, 10:33 | ||||
Тестирую в седьмой винде. Что такое виртуалка, признаться, не в курсе. Короче, у меня ничего не получилось. Сделал по тупому, вот так:
|
| Автор: Guinness 27.5.2015, 13:35 | ||
http://www.vmware.com/ru, https://www.virtualbox.org/, например. Я подумал, что возможно проблемы в настройках ОС. Хотелось бы ещё раз уточнить, вот так, оно не взлетает?
Я почему спрашиваю, раньше вроде было так, если пишешь "&Copy", то автоматически горячей клавишей для этого пункта меню Ctrl+C. Ещё можно попробовать сделать через такой http://doc.qt.io/qt-5/qmenu.html#addAction-5. При этом попробовать создать QAction и вручную ему добавить http://doc.qt.io/qt-5/qaction.html#shortcut-prop и попробовать поиграться с его http://doc.qt.io/qt-5/qt.html#ShortcutContext-enum. Но, вообще, у меня варианты как-то закончились, потому что это всегда работало. |
| Автор: Amp 27.5.2015, 13:56 |
| Версия Qt какая? У них был ряд багов связанных с работой хоткеев и акселераторов в non-latin раскладке. |
| Автор: EKoshelev 28.5.2015, 09:07 | ||||||
Guinness,
Нет, чисто под виндой тестил.
Не взлетает &Copy - не становится
С контекстом не игрался, но остальное не пашет. Amp, 4.8.5. Не совсем понял что имел в виду про раскладку, но если правильно понял, то и при RU, и при EN раскладках не работает. Ребят, спасибо конечно, но я думаю, что мне и в таком виде нормально будет. |