Цикл на основе For для большого количества QMenu

#c #qt #c 11 #visual-c

#c #qt #c 11 #visual-c

Вопрос:

будучи новичком в Qt , я не мог понять, как создать вектор QMenu .

Используя C , я получил следующую (простую) идею:

std::vector<QMenu> *subMenus;

а затем используйте for-loop для создания определенного количества меню.

 for (int i = 0; i < List.size();   i)
{
   subMenus[i] = new QMenu('some name',MainMenu);
   MainMenu->addMenu(subMenus[i]);
}
  

Где размер списка равен большому числу (~ 40).
Проблема в том, что при выполнении этого я сталкиваюсь со следующим сообщением об ошибке, ссылающимся на индекс i :

expression must have a constant value .

Я не уверен, следует ли мне использовать append или push back to subMenus, чтобы избежать этой ошибки.

Спасибо

Комментарии:

1. Вы, вероятно, были после std::vector<QMenu*> subMenus; . 🙂

Ответ №1:

Вы можете использовать что-то вроде этого:

 QVector<QMenu*> menuVector;
for (int i = 0; i < 40;   i)
{
   auto* menu = new QMenu('some name', MainMenu);
   menuVector.push_back(menu );
   MainMenu->addMenu(menu);
}