Я занимаюсь разработкой QML приложений с C++, но я в настоящее время застрял с, может быть простой, ошибка:C++, QT Ошибка при назначении QList <T> на QList <T>
C:\Qt\5.2.1\mingw48_32\include\QtCore\qvector.h:679: error: no match for 'operator==' (operand types are 'ListModel' and 'ListModel') if (!(*--i == *--j)) ^
Мой заголовок является:
#ifndef COMBOBOXUPDATE_H
#define COMBOBOXUPDATE_H
#include <QObject>
#include <QStringList>
#include <QString>
#include <QVector>
struct ListModel;
class ComboboxUpdate:public QObject
{
Q_OBJECT
Q_PROPERTY(QVector<ListModel> comboList READ comboList)
public:
ComboboxUpdate(QObject *parent = 0);
QVector<ListModel> comboList();
void setComboList(QVector<ListModel> &comboList);
private:
QVector<ListModel> m_comboList;
int m_count;
};
struct ListModel
{
ListModel();
ListModel(QString _text,int _Sqlid)
{
text=_text;
Sqlid=_Sqlid;
}
QString text;
int Sqlid;
};
#endif // COMBOBOXUPDATE_H
ошибка возникает в этом коде области в файле реализации:
void ComboboxUpdate::setComboList( QVector<ListModel> &comboList)
{
if (m_comboList != comboList)
{
m_comboList = comboList;
}
}
I C annot понять, почему эта проблема возникает. Моя основная цель - заполнение combobox со стороны C++ с использованием таких вещей, как ListElement
. Я могу успешно заполнить, используя QStringList
. Но я хочу заполнить как ListElement
. Например:
ComboBox {
model: ListModel {
ListElement {sqlid:"1"; text:"Pansi"}
ListElement {sqlid:"2"; text:"Rose"}
ListElement {sqlid:"3"; text:"Clips"}
}
anchors.fill: parent
}
На стороне QML эта модель показывает текст в ComboBox
и сохраняет значения в SQLite. Как я могу это сделать на стороне C++?