Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 代码>QObject实例(或从QObject继承的对象)。也就是说,QList。不,您不需要从QObject继承。使用Q_小工具:@RA。我还需要信号,有没有办法绕过不可复制的问题?在这种情况下,您需要继承自QObject,而没有办法绕过不可复制的问题。信_C++_Qt - Fatal编程技术网

C++ 代码>QObject实例(或从QObject继承的对象)。也就是说,QList。不,您不需要从QObject继承。使用Q_小工具:@RA。我还需要信号,有没有办法绕过不可复制的问题?在这种情况下,您需要继承自QObject,而没有办法绕过不可复制的问题。信

C++ 代码>QObject实例(或从QObject继承的对象)。也就是说,QList。不,您不需要从QObject继承。使用Q_小工具:@RA。我还需要信号,有没有办法绕过不可复制的问题?在这种情况下,您需要继承自QObject,而没有办法绕过不可复制的问题。信,c++,qt,C++,Qt,代码>QObject实例(或从QObject继承的对象)。也就是说,QList。不,您不需要从QObject继承。使用Q_小工具:@RA。我还需要信号,有没有办法绕过不可复制的问题?在这种情况下,您需要继承自QObject,而没有办法绕过不可复制的问题。信号和复制将不起作用。如果复制了发送方或接收方,信号/插槽连接应该怎么做?我认为这在语义上是不正确的。@ulakblade您可以拥有指向QObject实例(或继承自QObject的对象)的QList指针。也就是说,QList。除了继承QObjec


代码>QObject实例(或从
QObject
继承的对象)。也就是说,
QList
。不,您不需要从
QObject
继承。使用
Q_小工具
:@RA。我还需要信号,有没有办法绕过不可复制的问题?在这种情况下,您需要继承自
QObject
,而没有办法绕过不可复制的问题。信号和复制将不起作用。如果复制了发送方或接收方,信号/插槽连接应该怎么做?我认为这在语义上是不正确的。@ulakblade您可以拥有指向
QObject
实例(或继承自
QObject
的对象)的
QList
指针。也就是说,
QList
。除了继承QObject和放置Q_OBJECT宏之外,还需要其他什么吗?当我尝试使用某个属性时,仍会出现“未命名成员”错误。请共享代码。从QObject继承,添加Q_OBJECT宏。添加Q_属性宏。添加读取和/或写入属性C++方法。请注意,这应该转到header,如果在.cpp实现文件中这样做,预处理器(MOC编译器)将无法生成生成的代码。除了继承QObject和放置Q_OBJECT宏之外,还需要其他什么吗?当我尝试使用某个属性时,仍会出现“未命名成员”错误。请共享代码。从QObject继承,添加Q_OBJECT宏。添加Q_属性宏。添加读取和/或写入属性C++方法。请注意,这应该转到header,如果在.cpp实现文件中这样做,预处理器(MOC编译器)将无法生成生成的代码。
// Wrong, won't compile
QList<QObject> objects;

// OK, leverage the compositeness of QObject
QObject objects;
(new QObject(&objects))->setObjectName("obj1");
(new QObject(&objects))->setObjectName("obj2");
for (auto obj : objects.children()) qDebug() << obj->objectName();

// OK, use C++11 collections
std::list<QObject> objects;
objects.emplace_back();
objects.emplace_back();
objects.front().setObjectName("obj1");
objects.back().setObjectName("obj2");
for (const QObject & obj : objects) qDebug() << obj.objectName();