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