Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Перебор QAction элементов QMenu

Автор: ruzik 10.5.2011, 21:17

Не подскажите как реализовать перебор QAction элементов QMenu, то есть мне нужно обратиться к QAction через его номер, как ни странно искал в ассисте ничего подходящего нет, хотя почему-то Visual Assist с упорством выдает функцию findActionForId() о которой в ассисте вообще не слова
Заранее спасибо за помощь!

Автор: MoPDoBoPoT 10.5.2011, 21:52

Список действий можно получить вызовом метода QWidget::actions(), только не забывай, что разделители тоже имеют тип QAction.

Автор: ruzik 11.5.2011, 8:29

Спасибо за помощь и ответьте пожалуйста еще на один вопрос - у меня есть меню как удалить из него все QAction
Пробовал так:
QList<QAction *> actions = menuRecent_projects->actions();
for(int a=0;a<=actions.count();a++)
delete actions[a];
Так:
QList<QAction *> actions = menuRecent_projects->actions();
delete actions[];
В случае нарушение прав доступа, во втором просто ошибки, не подскажите как правильно

Автор: ruzik 11.5.2011, 14:48

А вообще это правильно удалять массивы и листы так : delete[], а что-то одиночное просто delete

Автор: MoPDoBoPoT 11.5.2011, 21:34

Зачем так сложно?)

Цитата(QtAssistant)
void QMenu::clear ()
Removes all the menu's actions. Actions owned by the menu and not shown in any other widget are deleted.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)