Russian Qt Forum
Ноябрь 26, 2024, 10:47
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Контекстное меню и QAction
Страниц:
1
2
[
3
]
4
5
...
7
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Контекстное меню и QAction (Прочитано 38393 раз)
VPS
Гость
Re: Контекстное меняю и QAction
«
Ответ #30 :
Июнь 14, 2013, 18:03 »
Цитата: Spark от Июнь 14, 2013, 15:50
Проверил. Вроде все работает теперь отлично.
Спасибо! Я снова счастлив и могу двигаться дальше
.
Можете считать меня совсем ленивым, но маленький штришок.
В оригинале иконка
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
Гость
Re: Контекстное меняю и QAction
«
Ответ #31 :
Июнь 14, 2013, 18:07 »
Цитата: kambala от Июнь 14, 2013, 16:57
вешать на кнопку другой (аналогичный) экшн, иначе не получится
а зачем вообще экшн отключать?
В оригинале в настройках программы - отключение этой функции как таковой вообще (так, что кнопка исчезает). Когда я еще ничего не умел, предлагал пересмотреть концепцию и сделать просто вкл/выкл. Но программист пояснил якобы эта функция может создать проблемы и по умолчанию она выключена. Я против подобного. И в принципе думаю не буду делать подобный преференс в настройках. В общем на сегодня, меня существующее решение устраивает.
Мало того, если кнопка нажата, то при перезапуске программы она выключается. И для того, что бы поменять ситуацию надо в преференсах включить - включить при запуске. Тогда наоборот - если выключить, то при перезапуске включится. Я умолял хотя бы поменять на галочку которая запоминала бы нажатие кнопочки. А по умолчанию эта функция была бы отключена, если уж так беспокоимся о пользователе.
В конечном итоге мне вообще надоело попрошайничать и я просто изучаю C++ и Qt и сделал уже больше за месяц, чем уговорами за год.
На сегодня вроде как могу переделать интерфейс так как считаю нужным и с точки зрения пользователя этой программой, а не как программист пользующийся ей не в полной мере.
«
Последнее редактирование: Июнь 14, 2013, 18:14 от Spark
»
Записан
Spark
Гость
Re: Контекстное меняю и QAction
«
Ответ #32 :
Июнь 14, 2013, 18:21 »
Цитата: vps от Июнь 14, 2013, 18:03
PS:
раз уж в программе используются действия, то надо стараться управления кнопками, которые связаны с этими действиями делать через объекты-действия (извиняюсь за каламбур)... Только надо правильные методы использовать для реализации задуманного... А про сохранение настроек программы при перезапуске почитайте про класс QSettings
Спасибо за совет. Наверное скоро придется воспользоваться. А пока, используя полученную информацию, навешаю контекстное меню на кнопки. Программа страдает слишком глубоко закопанным функционалом, который должен быть по рукой и пользователь зачастую просто не знает о нем.
Записан
Spark
Гость
Re: Контекстное меняю и QAction
«
Ответ #33 :
Июнь 14, 2013, 18:31 »
Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
Записан
VPS
Гость
Re: Контекстное меняю и QAction
«
Ответ #34 :
Июнь 14, 2013, 18:38 »
Цитата: Spark от Июнь 14, 2013, 18:31
Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
Какого точечного сепаратора? Если между группами кнопок, то там вроде вертикальная черта (по крайней мере у меня на Windows и Kubuntu)...
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Контекстное меняю и QAction
«
Ответ #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
Гость
Re: Контекстное меняю и QAction
«
Ответ #36 :
Июнь 14, 2013, 18:51 »
Цитата: kambala от Июнь 14, 2013, 18:46
кнопки как такие не предполагают контекстного меню (меню, вызывающегося правой кнопкой мыши) в принципе. вот если у нее есть стрелочка вниз, тогда сразу понятно, что при нажатии на кнопку левой кнопкой мыши вылезет меню.
Я понимаю. Просто изначально стоял вопрос навешивание контекстного меню на Экшин. На кнопку я разобрася относительно давно - позавчера
. Но в исходнике сплошные Экшены с иконками. Сейчас переделываю и дальше уже проще.
Записан
Spark
Гость
Re: Контекстное меняю и QAction
«
Ответ #37 :
Июнь 14, 2013, 18:55 »
Цитата: vps от Июнь 14, 2013, 18:38
Цитата: Spark от Июнь 14, 2013, 18:31
Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
Какого точечного сепаратора? Если между группами кнопок, то там вроде вертикальная черта (по крайней мере у меня на Windows и Kubuntu)...
Ну может я не так это назвал. Большие точки (вертикальная полоска) с лева на тулбаре - за который тулбар тянуть.
Тулбар разделил на несколько частей.
Записан
Spark
Гость
Re: Контекстное меняю и QAction
«
Ответ #38 :
Июнь 14, 2013, 18:58 »
Кнопок не так уж и много. И для мня на сегодня самый простой способ организовать драг энд друп с помощью маленьких тулбарчиков
. Ну хотя бы на первых порах. Пока не научусь делать это более правильно. Хотя в данном случае, возможно это рациональнее.
Записан
Spark
Гость
Re: Контекстное меняю и QAction
«
Ответ #39 :
Июнь 14, 2013, 19:15 »
Следующая кнопка зума.
В оригинале три кнопки. Мне такая концепция крайне не нравится.
Нравится две концепции:
1 - Колесико над кнопкой: вперед/назад. ЛКМ - сброс на умолчание. Остается и для контекстного меню ПКМ.
2 - ЛКМ - увеличить. ПКМ - уменьшить. Средняя кнопка мыши в дефолт.
Оба варианта позволяют обойтись одной кнопкой вместо трех.
Пока опыта не много, организовываю по второму варианту. С ЛКМ и ПКМ научился работать и не составило труда это реализовать. Сложно ли использовать Среднюю кнопку мыши?
Записан
VPS
Гость
Re: Контекстное меняю и QAction
«
Ответ #40 :
Июнь 14, 2013, 19:26 »
Цитата: Spark от Июнь 14, 2013, 19:15
Следующая кнопка зума.
В оригинале три кнопки. Мне такая концепция крайне не нравится.
Нравится две концепции:
1 - Колесико над кнопкой: вперед/назад. ЛКМ - сброс на умолчание. Остается и для контекстного меню ПКМ.
2 - ЛКМ - увеличить. ПКМ - уменьшить. Средняя кнопка мыши в дефолт.
Оба варианта позволяют обойтись одной кнопкой вместо трех.
Пока опыта не много, организовываю по второму варианту. С ЛКМ и ПКМ научился работать и не составило труда это реализовать. Сложно ли использовать Среднюю кнопку мыши?
Рассмотрите вариант использования QComboBox, в котором можно задавать зум. Так реализовано в Winword и в других программах....
Записан
Spark
Гость
Re: Контекстное меняю и QAction
«
Ответ #41 :
Июнь 14, 2013, 19:33 »
Цитата: vps от Июнь 14, 2013, 19:26
Рассмотрите вариант использования QComboBox, в котором можно задавать зум. Так реализовано в Winword и в других программах....
Типа ниспадающего меню. Возьму на заметку. Но не в моем вкусе. Хотя это мои предпочтения. Люблю - нажал и готово. Хотя может это с моей точки зрения удобно - привык. Не каждый пользователь догадается жать правой кнопкой мыши. Хотя вроде распространенная концепция зума. Но можно скомбенировать и попробовать использовать кнопку типа MenuButtonPopup.
«
Последнее редактирование: Июнь 14, 2013, 19:35 от Spark
»
Записан
VPS
Гость
Re: Контекстное меняю и QAction
«
Ответ #42 :
Июнь 14, 2013, 19:40 »
Цитата: Spark от Июнь 14, 2013, 19:33
Цитата: vps от Июнь 14, 2013, 19:26
Рассмотрите вариант использования QComboBox, в котором можно задавать зум. Так реализовано в Winword и в других программах....
Типа ниспадающего меню. Возьму на заметку. Но не в моем вкусе. Хотя это мои предпочтения. Люблю - нажал и готово. Хотя может это с моей точки зрения удобно - привык. Не каждый пользователь догадается жать правой кнопкой мыши. Хотя вроде распространенная концепция зума.
Во многих программах (особенно в различного рода редакторах) есть несколько способов изменения зума: через элементы меню и например, Ctrl + колесо мыши, но не над кнопкой, а над окном редактора (т.е. можно перехватывать события колеса мыши для вашей формы, в которой необходимо изменить зум)...
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Контекстное меняю и QAction
«
Ответ #43 :
Июнь 14, 2013, 19:44 »
Цитата: Spark от Июнь 14, 2013, 18:31
Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
через setMovable() можно отключить. начни уже читать документацию.
Цитата: Spark от Июнь 14, 2013, 19:15
Сложно ли использовать Среднюю кнопку мыши?
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
Гость
Re: Контекстное меняю и QAction
«
Ответ #44 :
Июнь 14, 2013, 19:59 »
Цитата: kambala от Июнь 14, 2013, 19:44
Цитата: Spark от Июнь 14, 2013, 18:31
Попутный вопрос. На тулбаре можно отключить или поменять вид точечного сепаратора?
через setMovable() можно отключить. начни уже читать документацию.
Цитата: Spark от Июнь 14, 2013, 19:15
Сложно ли использовать Среднюю кнопку мыши?
wheelEvent. начни уже читать документацию.
Я много чего попутно делаю. И документацию читаю. Но ведь надо ткнуть пальцем хотя бы, что читать. Ну не так просто новичку понять многие моменты. Интересны были бы преподаватели в школе или в вузах, которые постоянно твердили бы - ищи в гоогл или читай документацию, там все есть
. А зачем тогда вообще нужны наставники? Вроде как говорили уже об этом. Не так уж плохо продвинулся за четвертую неделю
. Может другие и быстрее, но я пока такими небольшими темпами с нуля
.
Спасибо за терпение и за то, что все таки отвечаете и учите нас уму разуму
.
Записан
Страниц:
1
2
[
3
]
4
5
...
7
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...