में मेटा प्रकार पंजीकृत करें मेरे पास एक कक्षा है और मैं इसे क्यूविरिएंट में उपयोग करना चाहता हूं, इसलिए मुझे मेटा प्रकार घोषित करने और पंजीकरण करने की आवश्यकता है। यह मैं क्या किया है है:क्यूटी
class blabla: public QThread
{
Q_OBJECT
.
.
.
};
Q_DECLARE_METATYPE(blabla)
लेकिन इस कोड मुझे त्रुटि दे रहा है:
In copy constructor ‘QThread::QThread(const QThread&)’:
instantiated from ‘void* qMetaTypeConstructHelper(const T*) [with T = blabla]’
instantiated from ‘int qRegisterMetaType(const char*, T*) [with T = blabla]’
instantiated from here
‘QObject::QObject(const QObject&)’ is private
within this context
In file included from UnitTest.cpp:16:0:
blabla.h: In copy constructor ‘blabla::blabla(const blabla&)’:
note: synthesized method ‘QThread::QThread(const QThread&)’ first required here
In file included from /usr/include/QtCore/qvariant.h:48:0,
from /usr/include/QtCore/qabstractitemmodel.h:45,
from /usr/include/QtCore/QtCore:7,
from /usr/include/QtTest/QtTest:3,
from UnitTest.h:16,
from UnitTest.cpp:14:
In function ‘void* qMetaTypeConstructHelper(const T*) [with T = blabla]’:
note: synthesized method ‘blabla::blabla(const blabla&)’ first required here
make[1]: *** [build/obj/UnitTest.o] Error 1
मुझे लगता है कि मैं अपने से मुलाकात प्रकार रजिस्टर करने की आवश्यकता है, लेकिन मुझे यकीन है कि जहां qRegisterMetaType<MyClass>("MyClass");
के लिए नहीं कर रहा हूँ । मैंने मेटा टाइप घोषणा मैक्रो के बाद इसे करने का प्रयास किया, लेकिन इसके परिणामस्वरूप त्रुटि हुई। किसी भी टिप्पणी या संकेत की सराहना करें जो मुझे सही रास्ते पर निर्देशित करता है।
मुझे विश्वास है कि मैं सी ++ स्रोत फ़ाइल में अपनी मेटाटाइप पंजीकृत करता हूं कि जिस वर्ग के लिए मैं पंजीकरण कर रहा हूं। और cmannett85 की तरह कहा कि मैं कक्षाओं के लिए पॉइंटर्स का उपयोग वस्तुओं नहीं है। – drescherjm