QAction传染媒介没编译

Vis*_*ani 0 c++ qt

我想创建一个QAction对象向量,我编写了以下代码:

std::vector<QAction> test;
for (quint16 tt = 0; tt < 5; tt++)
{
   test.push_back(QAction(this));
}
Run Code Online (Sandbox Code Playgroud)

编译这个显示错误:

错误C2248:'QAction :: QAction':无法访问类'QAction'中声明的私有成员

但是,如果我创建这样的QAction对象,它可以正常工作:

QAction test2(this);
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我的代码中的错误?

dte*_*ech 5

QAction继承QObject,因此不可复制.所需的复制构造函数std::vector是私有且不可访问的.

第二种情况有效,因为不涉及复制.

使用std::vector<QAction *>new QAction(this)替代.或者您可以使用QList<QAction>哪个将起作用,因为在内部它将隐式使用指针.