Russian Qt Forum

Qt => Общие вопросы => Тема начата: dream2work от Март 19, 2012, 12:40



Название: динамическое создание QAction
Отправлено: dream2work от Март 19, 2012, 12:40
Здравствуйте.
Создаю динамически екшены для меню. Причем количество екшенов известно только на етапе работы програмы.
Вопрос как реализовать работу всех екшнов с одним слотом и знать какой екшн сработал, если такое возможно.

Код:
         for (int i = 0; i < actionList.size(); ++i)
            {
               subMenu->addAction("Action " + actionList.at(i), this, SLOT(actionTriggered()));
            }
Спасибо.


Название: Re: динамическое создание QAction
Отправлено: mutineer от Март 19, 2012, 12:42
sender() в слоте


Название: Re: динамическое создание QAction
Отправлено: dream2work от Март 19, 2012, 12:44
спасибо.


Название: Re: динамическое создание QAction
Отправлено: Syveren от Март 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*)));
 


Название: Re: динамическое создание QAction
Отправлено: kambala от Март 19, 2012, 13:50
можно и через QSignalMapper