【问题标题】:For-based loop for large number of QMenus大量 QMenus 的基于 for 的循环
【发布时间】:2019-08-27 06:13:30
【问题描述】:

作为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]);
}

List 的大小很大(~40)。 问题是在执行此操作时,我会遇到以下引用索引i 的错误消息:

expression must have a constant value.

我不确定是否应该使用追加或推回子菜单来避免此错误。

谢谢

【问题讨论】:

  • 你可能在std::vector&lt;QMenu*&gt; subMenus;之后。 :-)

标签: c++ qt c++11 visual-c++


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多