資源簡介
利用Qt讀取xml文件,一種是debug下的xml文件,一種是任意文件夾下的xml文件,并用tableWidget和tableView兩種方式讀取。這里的xml文件是學生成績,所以還完成了平均分,總分,降序排列的操作。

代碼片段和文件信息
#include?“dialog.h“
#include?“ui_dialog.h“
#include?
#include?l>
#include?
#include?
#include?
#include?
Dialog::Dialog(QWidget?*parent)?:
????QDialog(parent)
????ui(new?Ui::Dialog)
{
????ui->setupUi(this);
}
Dialog::~Dialog()
{
????delete?ui;
}
void?Dialog::on_pushButton_clicked()
{
????//下面注釋的這段還是有用的,用于打開本地文件系統中的文件與目錄信息
//????QSplitter?*splitter=new?QSplitter;
//????QStandardItemModel?*model=new?QStandardItemModel;
//????//從默認目錄創建數據
//????QTableView?*tree=new?QTableView(splitter);
//????tree->setModel(model);
//????//setRootIndex()告訴views顯示哪個目錄的信息
//????//model?index去model中去獲取數據
//????//index()這個函數是QDirModel特有的,通過把一個目錄做為參數,得到了需要的model?index
????//tree->setRootIndex(model->index(QDir::currentPath()));
//????splitter->setWindowtitle(“exhibition“);
//????splitter->show();
//????qDebug()<<“done“;
????int?j=0;
????int?k=0;
????QVectorattributes;?//儲存屬性值
????QVectornames;????//放名字和班級號
????QVectorotherValues;???//放分數和學分
????QStandardItemModel?*model=new?QStandardItemModel();
????model->setColumnCount(2);
????model->setHeaderData(0Qt::HorizontalQString::fromLocal8Bit(“attribution“));
????model->setHeaderData(1Qt::HorizontalQString::fromLocal8Bit(“value“));
????ui->tableView->setModel(model);//后面如果要對tableview的屬性設置,必須這句話要放前面,否則沒有任何改變
????//表頭信息顯示居左
????ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
????//把xml中的內容讀書暫時存在數組中
????QFile?file(“my.xml“);
????if(!file.open(QIODevice::ReadOnly))
????????return;
????QDomDocument?doc;
????if(!doc.setContent(&file))
????{
????????file.close();
????????return;
????}
????file.close();
????QDomElement?docElem=doc.documentElement();
????QDomNode?n=docElem.firstChild();
????while(!n.isNull())
????{
????????if(n.isElement())
????????{
????????????QDomElement?e=n.toElement();
????????????attributes.append(e.tagName());
????????????otherValues.append(e.text().toDouble());
????????????QDomNodeList?list=e.childNodes();
????????????for(int?i=0;i ????????????{
????????????????QDomNode?node=list.at(i);
????????????????if(node.isElement())
????????????????{
????????????????????if(i==0||i==1)
????????????????????{
????????????????????????names.append(node.toElement().text());
????????????????????????attributes.append(node.toElement().tagName());
????????????????????}
????????????????????else
????????????????????{
????????????????????????otherValues.append(node.toElement().text().toDouble());
????????????????????????attributes.append(node.toElement().tagName());
????????????????????}
????????????????}
????????????}
????????}
????????n=n.nextSibling();
????}
????for(int?i=0;i ????{
????????model->setItem(i0new?QStandardItem(attributes.at(i)));
????????if((i-1)%8==0||(i-2)%8==0)//注意到名字和班級號所在位置的關系可以得出這個結論
????????{
????????????j++;
????????????mode
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-03-21?15:35??workForm\
?????目錄???????????0??2016-03-25?16:22??workForm\workForm\
?????目錄???????????0??2016-03-23?16:21??workForm\workForm-build-Debug\
?????文件?????????233??2016-03-23?15:58??workForm\workForm-build-Debug\AAA.txt
?????文件?????????234??2016-03-23?16:21??workForm\workForm-build-Debug\Alist.txt
?????目錄???????????0??2016-03-23?13:22??workForm\workForm-build-Debug\debug\
?????文件??????184909??2016-03-23?13:22??workForm\workForm-build-Debug\debug\dialog.obj
?????文件??????135266??2016-03-23?13:22??workForm\workForm-build-Debug\debug\main.obj
?????文件??????365131??2016-03-23?13:22??workForm\workForm-build-Debug\debug\mainwindow.obj
?????文件????????2805??2016-03-23?10:24??workForm\workForm-build-Debug\debug\moc_dialog.cpp
?????文件???????50077??2016-03-23?10:24??workForm\workForm-build-Debug\debug\moc_dialog.obj
?????文件????????3455??2016-03-23?13:22??workForm\workForm-build-Debug\debug\moc_mainwindow.cpp
?????文件??????134047??2016-03-23?13:22??workForm\workForm-build-Debug\debug\moc_mainwindow.obj
?????文件??????131072??2016-03-23?13:22??workForm\workForm-build-Debug\debug\workForm.exe
?????文件?????1591956??2016-03-23?13:22??workForm\workForm-build-Debug\debug\workForm.ilk
?????文件?????????638??2016-03-23?13:22??workForm\workForm-build-Debug\debug\workForm.intermediate.manifest
?????文件?????2665472??2016-03-23?13:22??workForm\workForm-build-Debug\debug\workForm.pdb
?????文件????????6948??2016-03-23?09:57??workForm\workForm-build-Debug\Makefile
?????文件????????7724??2016-03-23?09:57??workForm\workForm-build-Debug\Makefile.Debug
?????文件????????7814??2016-03-23?09:57??workForm\workForm-build-Debug\Makefile.Release
?????文件?????????217??2016-03-22?16:24??workForm\workForm-build-Debug\mine.txt
?????文件?????????233??2016-03-23?13:24??workForm\workForm-build-Debug\modified.txt
?????文件?????????820??2016-03-18?13:31??workForm\workForm-build-Debug\my.xm
?????文件?????????217??2016-03-22?16:01??workForm\workForm-build-Debug\none.txt
?????文件?????????217??2016-03-22?16:27??workForm\workForm-build-Debug\one.txt
?????目錄???????????0??2016-03-21?15:35??workForm\workForm-build-Debug\release\
?????文件????????2029??2016-03-23?10:24??workForm\workForm-build-Debug\ui_dialog.h
?????文件????????5351??2016-03-22?16:59??workForm\workForm-build-Debug\ui_mainwindow.h
?????文件?????1929216??2016-03-23?13:22??workForm\workForm-build-Debug\vc100.pdb
?????文件????????3699??2016-03-23?13:22??workForm\workForm\dialog.cpp
?????文件?????????334??2016-03-23?10:24??workForm\workForm\dialog.h
............此處省略7個文件信息
評論
共有 條評論