Russian Qt Forum
Ноябрь 23, 2024, 20:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: динамическое создание QAction  (Прочитано 3612 раз)
dream2work
Гость
« : Март 19, 2012, 12:40 »

Здравствуйте.
Создаю динамически екшены для меню. Причем количество екшенов известно только на етапе работы програмы.
Вопрос как реализовать работу всех екшнов с одним слотом и знать какой екшн сработал, если такое возможно.

Код:
         for (int i = 0; i < actionList.size(); ++i)
            {
               subMenu->addAction("Action " + actionList.at(i), this, SLOT(actionTriggered()));
            }
Спасибо.
Записан
mutineer
Гость
« Ответ #1 : Март 19, 2012, 12:42 »

sender() в слоте
Записан
dream2work
Гость
« Ответ #2 : Март 19, 2012, 12:44 »

спасибо.
Записан
Syveren
Гость
« Ответ #3 : Март 19, 2012, 13:12 »

Можно сделать через     QActionGroup,
Код
C++ (Qt)
 
QActionGroup * actionGroup = new QActionGroup(this);
actionGroup->addAction(new QAction("1",actionGroup));
actionGroup->addAction(new QAction("2",actionGroup));
actionGroup->addAction(new QAction("3",actionGroup));
menu->addActions(actionGroup->actions());
connect(actionGroup,SIGNAL(triggered(QAction*)),SLOT(actionTriggered(QAction*)));
 
« Последнее редактирование: Март 19, 2012, 14:27 от Syveren » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Март 19, 2012, 13:50 »

можно и через QSignalMapper
Записан

Изучением 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
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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