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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Матрешка из контейнеров  (Прочитано 2092 раз)
Silentium
Гость
« : Декабрь 06, 2011, 16:48 »

Добрый вечер. Подскажите пожалуйста. Пытаюсь оптимизировать количество переменных(а то тихонько начинают не умещаться на экране). В частности заполняю меню действиями. Хотелось бы получить массив списков меню
можно сделать так
Код:
QList<QAction *> actions_list[5]; //в этом случае вопросов как занести данные не возникает
action_list[0].append(new QAction(tr("что там"),menu_item));
теоретечиски хотелось бы вот так
QList<QList<QAction *> *> actions_list;
но как вносить данные не понятно
прошу подсказать
Записан
BRE
Гость
« Ответ #1 : Декабрь 06, 2011, 16:55 »

Ты удивишься, но так же: Улыбающийся
Код
C++ (Qt)
typedef QList<QAction*> ListAction;
QList<ListAction> actions_list;
 
actions_list.append( ListAction() );    // Добавили список
actions_list[ 0 ].append( new QAction( ... ) );
 
actions_list.append( ListAction() );    // Добавили еще один
actions_list[ 1 ].append( new QAction( ... ) );
 
Записан
Silentium
Гость
« Ответ #2 : Декабрь 06, 2011, 17:19 »

Большое спасибо, - так не додумался.
Единственный вопрос.
почему он не понимает at при добовление, но понимает при выводе?
Код:
actions_list[0].append (работает)
actions_list.at(0).append (не работает)
 menulist.at(0)->addAction(actions_list.at(0).at(3));- работает но неработает подсказка
Записан
BRE
Гость
« Ответ #3 : Декабрь 06, 2011, 17:21 »

Потому что at возвращает константную ссылку.
Записан
Silentium
Гость
« Ответ #4 : Декабрь 06, 2011, 17:27 »

Спасибо за разъяснения. Вы мне очень помогли
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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