I think I'd better complete code here.
I have 5 text field control and one tableview.
User can add row to tableview (contain 12 column (prop6 - 16 and image)).
I must save data (all row of tableview and text of 5 controls and one image) in XML file,
and when I open XML file, it shows data in tableview and text controls.
QML Text controls (propery 1 -5) is freezing for 6 second when I try to modify text from c++.
I have no idea how to write code for this process.
My XML file:
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<header prop1="..." prop2="..." prop3="..." prop4="..." prop5="..." />
<record prop6=".." prop7=".." prop8="..." prop9=".." prop10=".." prop11=".." prop12="..." prop13="..." prop14=..." prop15="..." prop16="..." image="iVBORw0KGgoAAtKdOq1aPGLd/Y8QAQEprZ1a7P3oLIBAIgBRIRtcI8w/ ...." />
<record prop6=".." prop7=".." prop8="..." prop9=".." prop10=".." prop11=".." prop12="..." prop13="..." prop14=..." prop15="..." prop16="..." image="iVBORw0KGgoAAtKdOq1aPGLd/Y8QAQEprZ1a7P3oLIBAIgBRIRtcI8w/ ...." />
.......
.......
.......
<record prop6=".." prop7=".." prop8="..." prop9=".." prop10=".." prop11=".." prop12="..." prop13="..." prop14=..." prop15="..." prop16="..." image="iVBORw0KGgoAAtKdOq1aPGLd/Y8QAQEprZ1a7P3oLIBAIgBRIRtcI8w/ ...." />
</NewDataSet>
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<header prop1="..." prop2="..." prop3="..." prop4="..." prop5="..." />
<record prop6=".." prop7=".." prop8="..." prop9=".." prop10=".." prop11=".." prop12="..." prop13="..." prop14=..." prop15="..." prop16="..." image="iVBORw0KGgoAAtKdOq1aPGLd/Y8QAQEprZ1a7P3oLIBAIgBRIRtcI8w/ ...." />
<record prop6=".." prop7=".." prop8="..." prop9=".." prop10=".." prop11=".." prop12="..." prop13="..." prop14=..." prop15="..." prop16="..." image="iVBORw0KGgoAAtKdOq1aPGLd/Y8QAQEprZ1a7P3oLIBAIgBRIRtcI8w/ ...." />
.......
.......
.......
<record prop6=".." prop7=".." prop8="..." prop9=".." prop10=".." prop11=".." prop12="..." prop13="..." prop14=..." prop15="..." prop16="..." image="iVBORw0KGgoAAtKdOq1aPGLd/Y8QAQEprZ1a7P3oLIBAIgBRIRtcI8w/ ...." />
</NewDataSet>
To copy to clipboard, switch view to plain text mode
myxml.cpp:
MyXML::MyXML()
{
newFileName = "";
}
{
newPROPERTY18 = pROPERTY18;
}
QString MyXML
::getPROPERTY1() const {
return newPROPERTY1;
}
void MyXML
::setPROPERTY1(QString pROPERTY1
) {
if (pROPERTY1 != newPROPERTY1)
{
newPROPERTY1 = pROPERTY1;
emit pROPERTY1Changed(pROPERTY1);
}
}
..
..
..
..
..
QString MyXML
::getPROPERTY18() const {
return newPROPERTY18;
}
void MyXML
::setPROPERTY18(QString pROPERTY18
) {
if (pROPERTY18 != newPROPERTY18)
{
newPROPERTY18 = pROPERTY18;
emit pROPERTY18Changed(pROPERTY18);
}
}
void MyXML::saveXMLFile()
{
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("NewDataSet");
xmlWriter.writeStartElement("header");
xmlWriter.writeAttribute("pROPERTY1",newpROPERTY1);
xmlWriter.writeAttribute("pROPERTY2",newpROPERTY2);
xmlWriter.writeAttribute("pROPERTY3",newpROPERTY3);
xmlWriter.writeAttribute("pROPERTY4",newpROPERTY4);
xmlWriter.writeAttribute("pROPERTY5",newpROPERTY5);
xmlWriter.writeEndElement();
????? save data of tableview
xmlWriter.writeEndElement();
file.close();
}
}
void MyXML::readXMLFile()
{
{
//qDebug() << "Error: Cannot read file ";
return;
}
QXmlStreamReader reader(file.readAll());
file.close();
while(!reader.atEnd()) {
reader.readNext();
if (reader.isStartElement()) {
if (reader.name() == "header") {//After about 6 seconds the text is displayed in controls
foreach(const QXmlStreamAttribute &attr, reader.attributes()) {
setpROPERTY1(attr.value().toString());
}
setpROPERTY2(attr.value().toString());
}
setpROPERTY3(attr.value().toString());
}
setpROPERTY4(attr.value().toString());
}
setpROPERTY5(attr.value().toString());
}
}
}
else if (reader.name() == "recorde") {
?????????
}
}
}
}
MyXML::MyXML()
{
newFileName = "";
}
MyXML::MyXML(QString pROPERTY18)
{
newPROPERTY18 = pROPERTY18;
}
QString MyXML::getPROPERTY1() const
{
return newPROPERTY1;
}
void MyXML::setPROPERTY1(QString pROPERTY1)
{
if (pROPERTY1 != newPROPERTY1)
{
newPROPERTY1 = pROPERTY1;
emit pROPERTY1Changed(pROPERTY1);
}
}
..
..
..
..
..
QString MyXML::getPROPERTY18() const
{
return newPROPERTY18;
}
void MyXML::setPROPERTY18(QString pROPERTY18)
{
if (pROPERTY18 != newPROPERTY18)
{
newPROPERTY18 = pROPERTY18;
emit pROPERTY18Changed(pROPERTY18);
}
}
void MyXML::saveXMLFile()
{
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("NewDataSet");
xmlWriter.writeStartElement("header");
xmlWriter.writeAttribute("pROPERTY1",newpROPERTY1);
xmlWriter.writeAttribute("pROPERTY2",newpROPERTY2);
xmlWriter.writeAttribute("pROPERTY3",newpROPERTY3);
xmlWriter.writeAttribute("pROPERTY4",newpROPERTY4);
xmlWriter.writeAttribute("pROPERTY5",newpROPERTY5);
xmlWriter.writeEndElement();
????? save data of tableview
xmlWriter.writeEndElement();
file.close();
}
}
void MyXML::readXMLFile()
{
QFile file(pROPERTY18);
if (!file.open(QFile::ReadOnly | QFile::Text))
{
//qDebug() << "Error: Cannot read file ";
return;
}
QXmlStreamReader reader(file.readAll());
file.close();
while(!reader.atEnd()) {
reader.readNext();
if (reader.isStartElement()) {
if (reader.name() == "header") {//After about 6 seconds the text is displayed in controls
foreach(const QXmlStreamAttribute &attr, reader.attributes()) {
if(attr.name().toString() == QLatin1String("pROPERTY1")){
setpROPERTY1(attr.value().toString());
}
else if(attr.name().toString() == QLatin1String("pROPERTY2")){
setpROPERTY2(attr.value().toString());
}
else if(attr.name().toString() == QLatin1String("pROPERTY3")){
setpROPERTY3(attr.value().toString());
}
else if(attr.name().toString() == QLatin1String("pROPERTY4")){
setpROPERTY4(attr.value().toString());
}
else if(attr.name().toString() == QLatin1String("pROPERTY5")){
setpROPERTY5(attr.value().toString());
}
}
}
else if (reader.name() == "recorde") {
?????????
}
}
}
}
To copy to clipboard, switch view to plain text mode
Bookmarks