Tôi đang sử dụng Qt và có một số vấn đề cơ bản thực sự. Tôi đã tạo tiện ích MyTest của riêng mình có biến số obj
. Tôi cần phải đặt biến này obj
từ một đối tượng bên ngoài tiện ích để biến được sao chép không chỉ là con trỏ đến đối tượng khác. Tôi nhận được thông báo lỗi và không thể tìm ra cách thực hiện công cụ cơ bản này. Đây là mã Tôi đang sử dụng:Làm thế nào để sao chép đối tượng trong 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);
}
Tôi muốn làm rõ rằng không có gì ngăn cản bạn sử dụng macro Q_DISABLE_COPY ngay cả khi lớp học của bạn không xuất phát từ QObject, vì nó không liên quan gì đến QObject. – rightaway717