I changed the code
But I do not see any record in the TableView.
main.qml:
TableView {
id: tablemodel
anchors.fill: parent
TableViewColumn {
role: "col1"
title: " "
width: 30
}
model: myXML.newDataList
// model: ListModel {
// id: myModel
// }
}
TableView {
id: tablemodel
anchors.fill: parent
TableViewColumn {
role: "col1"
title: " "
width: 30
}
model: myXML.newDataList
// model: ListModel {
// id: myModel
// }
}
To copy to clipboard, switch view to plain text mode
myxml.h:
{
Q_OBJECT
//...
Q_PROPERTY(QList<QObject*> newDataList READ getDataList WRITE setDataList NOTIFY dataListChanged)
public:
MyXML();
//...
Q_INVOKABLE QList<QObject*> getDataList() const;
public slots:
//...
void setDataList(QList<QObject*> dataList);
void saveXMLFile();
void readXMLFile();
signals:
//...
void dataListChanged(QList<QObject*>);
private:
//...
QList<QObject*> newDataList;
};
class MyXML: public QObject
{
Q_OBJECT
//...
Q_PROPERTY(QList<QObject*> newDataList READ getDataList WRITE setDataList NOTIFY dataListChanged)
public:
MyXML();
MyXML(QString);
//...
Q_INVOKABLE QList<QObject*> getDataList() const;
public slots:
//...
void setDataList(QList<QObject*> dataList);
void saveXMLFile();
void readXMLFile();
signals:
//...
void dataListChanged(QList<QObject*>);
private:
//...
QList<QObject*> newDataList;
};
To copy to clipboard, switch view to plain text mode
myxml.cpp:
void MyXML::readXMLFile()
{
//...
while(!reader.atEnd()) {
reader.readNext();
if (reader.isStartElement()) {
//...
if (reader.name() == "record") {
foreach(const QXmlStreamAttribute &attr, reader.attributes()){
newDataList.append(new DataObject("col1", attr.value().toString()));
}
}
}
}
}
void MyXML::saveXMLFile()
{
}
void MyXML::readXMLFile()
{
//...
while(!reader.atEnd()) {
reader.readNext();
if (reader.isStartElement()) {
//...
if (reader.name() == "record") {
foreach(const QXmlStreamAttribute &attr, reader.attributes()){
newDataList.append(new DataObject("col1", attr.value().toString()));
}
}
}
}
}
void MyXML::saveXMLFile()
{
}
To copy to clipboard, switch view to plain text mode
I must write and open a XML file Like this:
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<record prop1=".." prop10="..." />
.......
<record prop1=".." prop10="..."/>
</NewDataSet>
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<record prop1=".." prop10="..." />
.......
<record prop1=".." prop10="..."/>
</NewDataSet>
To copy to clipboard, switch view to plain text mode
dataobject.h:
{
Q_OBJECT
Q_PROPERTY(QString newName READ name WRITE setName NOTIFY nameChanged
) Q_PROPERTY(QString newValue READ value WRITE setValue NOTIFY ValueChanged
) public:
DataObject();
public slots:
signals:
private:
};
class DataObject:public QObject
{
Q_OBJECT
Q_PROPERTY(QString newName READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(QString newValue READ value WRITE setValue NOTIFY ValueChanged)
public:
DataObject();
DataObject(QString,QString);
Q_INVOKABLE QString name() const;
Q_INVOKABLE QString value() const;
public slots:
void setName(QString name);
void setValue(QString value);
signals:
void nameChanged(QString);
void valueChanged(QString);
private:
QString newName;
QString newValue;
};
To copy to clipboard, switch view to plain text mode
dataobject.cpp:
#include "dataobject.h"
DataObject::DataObject()
{
}
{
newName=name;
newValue=value;
}
{
return newName;
}
void DataObject
::setName(QString name
) {
if (name != newName)
{
newName =name;
emit nameChanged(newName);
}
}
{
return newValue;
}
void DataObject
::setValue(QString value
) {
if (value!= newValue)
{
newValue = value;
emit valueChanged(newValue);
}
}
#include "dataobject.h"
DataObject::DataObject()
{
}
DataObject::DataObject(QString name,QString value)
{
newName=name;
newValue=value;
}
QString DataObject::name() const
{
return newName;
}
void DataObject::setName(QString name)
{
if (name != newName)
{
newName =name;
emit nameChanged(newName);
}
}
QString DataObject::value() const
{
return newValue;
}
void DataObject::setValue(QString value)
{
if (value!= newValue)
{
newValue = value;
emit valueChanged(newValue);
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks