Unsolved How to create a QList<QGraphicsItem>
-
It would help me a lot if i could do tis, but it gives me an error if i try to
-
Hi,
What are you doing ?
What errors do you get ? -
hi,
QList<QGraphicsItem> list;
in the code it doesn't show any error, but in the compiler it says
"ivalid abstract return type 'QGraphicsItem'" -
Hi
Should that not be
QList<QGraphicsItem *>
so its a list of pointers to QGraphicsItem's
also the scene has such list already. (just in case)
https://doc.qt.io/qt-5/qgraphicsscene.html#items -
QList will call follow code to create object:
template <typename T> Q_INLINE_TEMPLATE void QList<T>::node_construct(Node *n, const T &t) { if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) n->v = new T(t); else if (QTypeInfo<T>::isComplex) new (n) T(t); #if (defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__IBMCPP__)) && !defined(__OPTIMIZE__) // This violates pointer aliasing rules, but it is known to be safe (and silent) // in unoptimized GCC builds (-fno-strict-aliasing). The other compilers which // set the same define are assumed to be safe. else *reinterpret_cast<T*>(n) = t; #else // This is always safe, but penaltizes unoptimized builds a lot. else ::memcpy(n, static_cast<const void *>(&t), sizeof(T)); #endif }
But QGraphicsItem is a abstract class, See, boundingRect(), paint(), that causes compilation to failed.