Russian Qt Forum
Июнь 16, 2024, 13:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: 1 2 [3] 4 5 ... 7   Вниз
  Печать  
Автор Тема: Контекстное меню и QAction  (Прочитано 37546 раз)
VPS
Гость
« Ответ #30 : Июнь 14, 2013, 18:03 »

Проверил. Вроде все работает теперь отлично.
Спасибо! Я снова счастлив и могу двигаться дальше Улыбающийся.
Можете считать меня совсем ленивым, но маленький штришок.
В оригинале иконка QAction enBat становилась невидимой, если в настройках программы отключить Экшин.
Делается это так:
Код:
enBat->setVisible( cfg.pref.set );
Кнопка же scButton ведет себя несколько иначе: мутнеет перестает функционировать.
Код:
scButton->setVisible( cfg.pref.set );
не особо помогает. Только при перезапуске исчезает/появляется.
Как связать Экшен с кнопкой в этом случае?

Отключать объект-действие нужно методом "setEnabled(bool)", а "setVisible(bool)" влияет на видимость...

PS: раз уж в программе используются действия, то надо стараться управления кнопками, которые связаны с этими действиями делать через объекты-действия (извиняюсь за каламбур)... Только надо правильные методы использовать для реализации задуманного... А про сохранение настроек программы при перезапуске почитайте про класс QSettings
« Последнее редактирование: Июнь 14, 2013, 18:16 от vps » Записан
Spark
Гость
« Ответ #31 : Июнь 14, 2013, 18:07 »

вешать на кнопку другой (аналогичный) экшн, иначе не получится

а зачем вообще экшн отключать?
В оригинале в настройках программы - отключение этой функции как таковой вообще (так, что кнопка исчезает). Когда я еще ничего не умел, предлагал пересмотреть концепцию и сделать просто вкл/выкл. Но программист пояснил якобы эта функция может создать проблемы и по умолчанию она выключена. Я против подобного. И в принципе думаю не буду делать подобный преференс в настройках. В общем на сегодня, меня существующее решение устраивает.
Мало того, если кнопка нажата, то при перезапуске программы она выключается. И для того, что бы поменять ситуацию надо в преференсах включить - включить при запуске. Тогда наоборот - если выключить, то при перезапуске включится. Я умолял хотя бы поменять на галочку которая запоминала бы нажатие кнопочки. А по умолчанию эта функция была бы отключена, если уж так беспокоимся о пользователе.
В конечном итоге мне вообще надоело попрошайничать и я просто изучаю C++ и Qt и сделал уже больше за месяц, чем уговорами за год.
На сегодня вроде как могу переделать интерфейс так как считаю нужным и с точки зрения пользователя этой программой, а не как программист пользующийся ей не в полной мере.
« Последнее редактирование: Июнь 14, 2013, 18:14 от Spark » Записан
Spark
Гость
« Ответ #32 : Июнь 14, 2013, 18:21 »

PS: раз уж в программе используются действия, то надо стараться управления кнопками, которые связаны с этими действиями делать через объекты-действия (извиняюсь за каламбур)... Только надо правильные методы использовать для реализации задуманного... А про сохранение настроек программы при перезапуске почитайте про класс QSettings
Спасибо за совет. Наверное скоро придется воспользоваться. А пока, используя полученную информацию, навешаю контекстное меню на кнопки. Программа страдает слишком глубоко закопанным функционалом, который должен быть по рукой и пользователь зачастую просто не знает о нем.
Записан
Spark
Гость
« Ответ #33 : Июнь 14, 2013, 18:31 »

Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
Записан
VPS
Гость
« Ответ #34 : Июнь 14, 2013, 18:38 »

Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?

Какого точечного сепаратора? Если между группами кнопок, то там вроде вертикальная черта (по крайней мере у меня на Windows и Kubuntu)... В замешательстве
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4732



Просмотр профиля WWW
« Ответ #35 : Июнь 14, 2013, 18:46 »

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

Изучением 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
Spark
Гость
« Ответ #36 : Июнь 14, 2013, 18:51 »

кнопки как такие не предполагают контекстного меню (меню, вызывающегося правой кнопкой мыши) в принципе. вот если у нее есть стрелочка вниз, тогда сразу понятно, что при нажатии на кнопку левой кнопкой мыши вылезет меню.
Я понимаю. Просто изначально стоял вопрос навешивание контекстного меню на Экшин. На кнопку я разобрася относительно давно - позавчера Улыбающийся. Но в исходнике сплошные Экшены с иконками. Сейчас переделываю и дальше уже проще.
Записан
Spark
Гость
« Ответ #37 : Июнь 14, 2013, 18:55 »

Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?

Какого точечного сепаратора? Если между группами кнопок, то там вроде вертикальная черта (по крайней мере у меня на Windows и Kubuntu)... В замешательстве
Ну может я не так это назвал. Большие точки (вертикальная полоска) с лева на тулбаре - за который тулбар тянуть.
Тулбар разделил на несколько частей.
Записан
Spark
Гость
« Ответ #38 : Июнь 14, 2013, 18:58 »

Кнопок не так уж и много. И для мня на сегодня самый простой способ организовать драг энд друп с помощью маленьких тулбарчиков Улыбающийся. Ну хотя бы на первых порах. Пока не научусь делать это более правильно. Хотя в данном случае, возможно это рациональнее.
Записан
Spark
Гость
« Ответ #39 : Июнь 14, 2013, 19:15 »

Следующая кнопка зума.
В оригинале три кнопки. Мне такая концепция крайне не нравится.
Нравится две концепции:
1 - Колесико над кнопкой: вперед/назад. ЛКМ - сброс на умолчание. Остается и для контекстного меню ПКМ.
2 - ЛКМ - увеличить. ПКМ - уменьшить. Средняя кнопка мыши в дефолт.
Оба варианта позволяют обойтись одной кнопкой вместо трех.

Пока опыта не много, организовываю по второму варианту. С ЛКМ и ПКМ научился работать и не составило труда это реализовать. Сложно ли использовать Среднюю кнопку мыши?
Записан
VPS
Гость
« Ответ #40 : Июнь 14, 2013, 19:26 »

Следующая кнопка зума.
В оригинале три кнопки. Мне такая концепция крайне не нравится.
Нравится две концепции:
1 - Колесико над кнопкой: вперед/назад. ЛКМ - сброс на умолчание. Остается и для контекстного меню ПКМ.
2 - ЛКМ - увеличить. ПКМ - уменьшить. Средняя кнопка мыши в дефолт.
Оба варианта позволяют обойтись одной кнопкой вместо трех.

Пока опыта не много, организовываю по второму варианту. С ЛКМ и ПКМ научился работать и не составило труда это реализовать. Сложно ли использовать Среднюю кнопку мыши?

Рассмотрите вариант использования QComboBox, в котором можно задавать зум. Так реализовано в Winword и в других программах....
Записан
Spark
Гость
« Ответ #41 : Июнь 14, 2013, 19:33 »

Рассмотрите вариант использования QComboBox, в котором можно задавать зум. Так реализовано в Winword и в других программах....
Типа ниспадающего меню. Возьму на заметку. Но не в моем вкусе. Хотя это мои предпочтения. Люблю - нажал и готово. Хотя может это с моей точки зрения удобно - привык. Не каждый пользователь догадается жать правой кнопкой мыши. Хотя вроде распространенная концепция зума. Но можно скомбенировать и попробовать использовать кнопку типа MenuButtonPopup.
« Последнее редактирование: Июнь 14, 2013, 19:35 от Spark » Записан
VPS
Гость
« Ответ #42 : Июнь 14, 2013, 19:40 »

Рассмотрите вариант использования QComboBox, в котором можно задавать зум. Так реализовано в Winword и в других программах....
Типа ниспадающего меню. Возьму на заметку. Но не в моем вкусе. Хотя это мои предпочтения. Люблю - нажал и готово. Хотя может это с моей точки зрения удобно - привык. Не каждый пользователь догадается жать правой кнопкой мыши. Хотя вроде распространенная концепция зума.

Во многих программах (особенно в различного рода редакторах) есть несколько способов изменения зума: через элементы меню и например, Ctrl + колесо мыши, но не над кнопкой, а над окном редактора (т.е. можно перехватывать события колеса мыши для вашей формы, в которой необходимо изменить зум)...
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4732



Просмотр профиля WWW
« Ответ #43 : Июнь 14, 2013, 19:44 »

Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
через setMovable() можно отключить. начни уже читать документацию.
Сложно ли использовать Среднюю кнопку мыши?
wheelEvent. начни уже читать документацию.
Записан

Изучением 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
Spark
Гость
« Ответ #44 : Июнь 14, 2013, 19:59 »

Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
через setMovable() можно отключить. начни уже читать документацию.
Сложно ли использовать Среднюю кнопку мыши?
wheelEvent. начни уже читать документацию.
Я много чего попутно делаю. И документацию читаю. Но ведь надо ткнуть пальцем хотя бы, что читать. Ну не так просто новичку понять многие моменты. Интересны были бы преподаватели в школе или в вузах, которые постоянно твердили бы - ищи в гоогл или читай документацию, там все есть Улыбающийся. А зачем тогда вообще нужны наставники? Вроде как говорили уже об этом. Не так уж плохо продвинулся за четвертую неделю Улыбающийся. Может другие и быстрее, но я пока такими небольшими темпами с нуля Улыбающийся.
Спасибо за терпение и за то, что все таки отвечаете и учите нас уму разуму Улыбающийся.
Записан
Страниц: 1 2 [3] 4 5 ... 7   Вверх
  Печать  
 
Перейти в:  


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