基于For的循环用于大量QMenus

问题描述 投票:0回答:1

作为与Qt的noobie我无法弄清楚如何创建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]);
}

List的大小是一个很大的数字(~40)。问题是,在这样做时,我面临以下错误消息,引用索引i

expression must have a constant value

我不确定是否应该使用append或push back to subMenus以避免此错误。

谢谢

c++ qt c++11 visual-c++
1个回答
2
投票

你可以使用这样的东西:

QVector<QMenu*> menuVector;
for (int i = 0; i < 40; ++i)
{
   auto* menu = new QMenu('some name', MainMenu);
   menuVector.push_back(menu );
   MainMenu->addMenu(menu);
}
© www.soinside.com 2019 - 2024. All rights reserved.