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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Найти child item в QMenu  (Прочитано 3060 раз)
pashazz
Гость
« : Июнь 25, 2009, 21:36 »

Нужно найти child item  в данной менюшке или ее детях по свойству title.
Как это сделать? Ассистент ничего внятного не дал.
Записан
denka
Гость
« Ответ #1 : Июнь 25, 2009, 22:18 »

QMenu наследник QObject. Следовательно тебе надо что то типа такого:
Код:
const QObjectList list = menu.children();
for(int i = 0; i < list.size(); ++i)
{
    if (QAction * action = qobject_cast<QAction*>(list)) {
          if (action->text() == text) { // нашли то что хотели
             ...
          }
    }
}
Думаю изменения с поиском в подменю не составят проблем Улыбающийся
Записан
pashazz
Гость
« Ответ #2 : Июнь 26, 2009, 07:57 »

Я задал бы тему в вопросы новичков и ожидал бы именно такого ответа, если бы не попробовал сам.
Через children и qobject_cast я уже пробовал - не получается.
Записан
SABROG
Гость
« Ответ #3 : Июнь 26, 2009, 08:33 »

Пиши рекурсивную функцию обхода дерева меню. Бери изначальный указатель на QMenu, вызывай у него метод actions(). Проходи по каждому элементу (QAction) списка и вызывай QAction::menu(), повторяй цикл заново с новым указателем.

Насчет метода не уверен, надо пробовать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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