![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Sokoloff |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: ![]() ![]() ![]() |
Что-то не найду, можно привязать QPushButton к QAction, чтоб доступность кнопки менялась в зависимости от enabled для QAction.
Пытался вьехать в QWidget::addAction, но что-то не пойму "All QWidgets have a list of QActions" это как? Как, скажем кнопка, может иметь несколько action? Или это вообще из другой оперы? Может кто просветит меня по этому вопросу? |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Или это вообще из другой оперы? скорее так.Действия (QAction), нужны для меню, панели меню и панели инструментов. Эта абстракция позволяет воедино связать текст (с акселератором) в меню, значёк (QIcon) и комбинацию горячих клавиш. Объясни конечную цель, подскажим как сделать. |
|
|
kwisp |
![]()
Сообщение
#3
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Sokoloff,
да, виджеты могут иметь список действий. добавляешь действие в виджет, если виджет ловит событие вызывающее действие(обычно уникальная комбинация клавиш, щелчок мышкой в меню и т.д.) то действие посылает сигнал. ни как со стандартным поведением виджетов кнопок и т.д. действия не связаны. разработчик сам может добавлять изменять активировать и т.д. действия. |
|
|
Sokoloff |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: ![]() ![]() ![]() |
Или это вообще из другой оперы? скорее так.Действия (QAction), нужны для меню, панели меню и панели инструментов. Эта абстракция позволяет воедино связать текст (с акселератором) в меню, значёк (QIcon) и комбинацию горячих клавиш. Объясни конечную цель, подскажим как сделать. Для чего нужны QAction я знаю. Меня интересовало как связать action и обычную кнопку(QPushButton). Сейчас я сделал так:
Все работает, но может есть более простое/прямое решение. Отдельный вопрос вызвала фунция actions у QWidget, что это, для чего это? да, виджеты могут иметь список действий. добавляешь действие в виджет, если виджет ловит событие вызывающее действие(обычно уникальная комбинация клавиш, щелчок мышкой в меню и т.д.) то действие посылает сигнал. ни как со стандартным поведением виджетов кнопок и т.д. действия не связаны. разработчик сам может добавлять изменять активировать и т.д. действия. Принцип работы QAction мне понятен. Не понятно где это может применяться на практике(кроме главного окна). Можешь привести пример, для чего может понадобиться определить свои actions у какого-то виджета на форме? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Sokoloff, если честно то я всё равно не понял конечную цель.
Может нужно всего лишь соеденить сигнал void QAction::toggled ( bool checked ) или void QAction::triggered ( bool checked = false ) со слотом void QWidget::setEnabled ( bool ) ?? |
|
|
kwisp |
![]()
Сообщение
#6
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Troeshnik |
![]()
Сообщение
#7
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 23.3.2008 Пользователь №: 130 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Нужно использовать функцию
void QToolButton::setDefaultAction ( QAction * action ) |
|
|
Sokoloff |
![]()
Сообщение
#8
|
Участник ![]() ![]() Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: ![]() ![]() ![]() |
Нужно использовать функцию void QToolButton::setDefaultAction ( QAction * action ) Это для ToolButton а меня интересовало для PushButton. Ладно, я остановился на варианте со слотами. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.7.2025, 1:49 |