资源简介
利用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个文件信息
评论
共有 条评论