SpanchBob
24th July 2012, 06:51
Hello!
I have a next code:
void MainWindow::openFile()
{
QString filePath = QFileDialog::getOpenFileName(this, tr("Open File"),
xmlPath, tr("XML files (*.xml);;HTML files (*.html);;"
"SVG files (*.svg);;User Interface files (*.ui)"));
QStandardItem *root = new QStandardItem ("Main");
root->setIcon(QIcon("D:/note.png"));
model->appendRow(root);
QDomDocument document;
if (!filePath.isEmpty()) {
QFile file(filePath);
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
document.setContent(&file);
file.close();
}
//read root element
QDomElement xmlroot = document.firstChildElement();
//Ñчитываем childitems
QDomNodeList books = xmlroot.elementsByTagName("entry");
for (int i = 0; i < 1; i++)
{
QDomElement book = books.at(i).toElement();
QStandardItem *bookitem = new QStandardItem(book.attribute("term"));
bookitem->setIcon(QIcon("pic.png"));
QDomNodeList ne_chapters = book.elementsByTagName("entry");
for (int h = 0; h < 1; h++)
{
QDomElement ne_chapter = ne_chapters.at(h).toElement();
QStandardItem *ne_chapteritem = new QStandardItem(ne_chapter.attribute("term"));
ne_chapteritem->setIcon(QIcon("D:/pic2.png"));
bookitem->appendRow(ne_chapteritem);
}
//Ñчитываем подпункты
QDomNodeList chapters = book.elementsByTagName("entry");
for (int h = 1; h < chapters.count()-1; h++)//select all only end item
{
QDomElement chapter = chapters.at(h).toElement();
QStandardItem *chapteritem = new QStandardItem(chapter.attribute("term"));
chapteritem->setIcon(QIcon("D:/pic3.png"));
bookitem->appendRow(chapteritem);
}
for (int s = chapters.count()-1; s < chapters.count(); s++)//end item
{
QDomElement chapter = chapters.at(s).toElement();
QStandardItem *chapteritem = new QStandardItem(chapter.attribute("term"));
chapteritem->setIcon(QIcon("pic.png"));
bookitem->appendRow(chapteritem);
}
root->appendRow(bookitem);
}
}
}
in start code:
model = new QStandardItemModel (0,1,this);//0 - row; 1 column;
ui->treeView->setModel(model);
This is working so good, but i want used QtreeWidget instead TreeView. How can i do it in this code or i must rewriting this?
Sorry for my bad english :(
Thanks
I have a next code:
void MainWindow::openFile()
{
QString filePath = QFileDialog::getOpenFileName(this, tr("Open File"),
xmlPath, tr("XML files (*.xml);;HTML files (*.html);;"
"SVG files (*.svg);;User Interface files (*.ui)"));
QStandardItem *root = new QStandardItem ("Main");
root->setIcon(QIcon("D:/note.png"));
model->appendRow(root);
QDomDocument document;
if (!filePath.isEmpty()) {
QFile file(filePath);
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
document.setContent(&file);
file.close();
}
//read root element
QDomElement xmlroot = document.firstChildElement();
//Ñчитываем childitems
QDomNodeList books = xmlroot.elementsByTagName("entry");
for (int i = 0; i < 1; i++)
{
QDomElement book = books.at(i).toElement();
QStandardItem *bookitem = new QStandardItem(book.attribute("term"));
bookitem->setIcon(QIcon("pic.png"));
QDomNodeList ne_chapters = book.elementsByTagName("entry");
for (int h = 0; h < 1; h++)
{
QDomElement ne_chapter = ne_chapters.at(h).toElement();
QStandardItem *ne_chapteritem = new QStandardItem(ne_chapter.attribute("term"));
ne_chapteritem->setIcon(QIcon("D:/pic2.png"));
bookitem->appendRow(ne_chapteritem);
}
//Ñчитываем подпункты
QDomNodeList chapters = book.elementsByTagName("entry");
for (int h = 1; h < chapters.count()-1; h++)//select all only end item
{
QDomElement chapter = chapters.at(h).toElement();
QStandardItem *chapteritem = new QStandardItem(chapter.attribute("term"));
chapteritem->setIcon(QIcon("D:/pic3.png"));
bookitem->appendRow(chapteritem);
}
for (int s = chapters.count()-1; s < chapters.count(); s++)//end item
{
QDomElement chapter = chapters.at(s).toElement();
QStandardItem *chapteritem = new QStandardItem(chapter.attribute("term"));
chapteritem->setIcon(QIcon("pic.png"));
bookitem->appendRow(chapteritem);
}
root->appendRow(bookitem);
}
}
}
in start code:
model = new QStandardItemModel (0,1,this);//0 - row; 1 column;
ui->treeView->setModel(model);
This is working so good, but i want used QtreeWidget instead TreeView. How can i do it in this code or i must rewriting this?
Sorry for my bad english :(
Thanks