Продукт
является подклассом QObject
, который нельзя скопировать. Ваш код пытается скопировать его куда-нибудь (возможно, в productDetails (tempProduct)
), и это вызывает ошибку. Возможно, вы могли бы вместо этого передать его в свою функцию по ссылке const; или, возможно, требуется переделать вашу программу.
Ваш компилятор сообщает вам, что конструктор копирования QObject
является частным, поэтому он не может быть вызван какой-либо функцией, которая не является методом базового класса . Qt спроектировал его для работы таким образом.
Одна из причин, по которой Qt запрещает копирование QObject
s, заключается в том, что он управляет памятью дочерних объектов QObject
. Когда QObject
удаляется, то же самое происходит со всеми его дочерними объектами.
Копирование запрещено для потомков QObject ...
См. http://lists.trolltech.com/qt-interest/2001-02/thread00123-0.html
Функция productDetails () принимает параметр по значению, что делает копию необходимой. Измените его, чтобы вместо него использовалась постоянная ссылка.
В строке 574 вы пытаетесь передать один из этих элементов в функцию productDetails. Вы этого не показываете, но я предполагаю, что эта функция либо принимает значение. Таким образом, компилятор пытается создать новый объект для его передачи, но это не разрешено библиотекой, которая намеренно установила конструктор копирования как закрытый.
Создайте новый объект явно или исправьте вызываемую функцию.