Ich benutze Qt und habe einige echte Grundprobleme. Ich habe mein eigenes Widget MyTest erstellt, das eine Variable obj
hat. Ich muss diese Variable obj
von einem Objekt außerhalb des Widgets festlegen, so dass die Variable nicht nur ein Zeiger auf ein anderes Objekt kopiert wird. Ich erhalte eine Fehlermeldung und kann nicht herausfinden, wie man dieses grundlegende Zeug macht. Dies ist der Code Ich verwende:Wie kopiere ich Objekte in Qt?
MyTest.h:
class MyTest : public QWidget
{
Q_OBJECT
public:
void setObj(QObject &inobj);
QObject obj;
....
}
MyTest.cpp:
void MyTest::setObj(QObject &inobj) {
obj = inobj; //HERE I get the error message: "illegal access from 'QObject' to protected/private member 'QObject::operator=(const QObject &)'"
}
main.cpp:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QObject *ob = new QObject();
MyTest w;
w.setObj(*ob);
}
Ich möchte klarstellen, dass nichts daran hindert, Q_DISABLE_COPY-Makro zu verwenden, auch wenn Ihre Klasse nicht von QObject ableitet, da es überhaupt nichts mit QObject zu tun hat. – rightaway717