Qt以tableWidget/tableView读取xml文件,并做降序排列等操作
利用Qt读取xml文件,一种是debug下的xml文件,一种是任意文件夹下的xml文件,并用tableWidget和tableView两种方式读取。这里的xml文件是学生成绩,所以还完成了平均分,总分,降序排列的操作。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-03-21 15:35 workForm
目录 0 2016-03-25 16:22 workFormworkForm
目录 0 2016-03-23 16:21 workFormworkForm-build-Debug
文件 233 2016-03-23 15:58 workFormworkForm-build-DebugAAA.txt
文件 234 2016-03-23 16:21 workFormworkForm-build-DebugAlist.txt
目录 0 2016-03-23 13:22 workFormworkForm-build-Debugdebug
文件 184909 2016-03-23 13:22 workFormworkForm-build-Debugdebugdialog.obj
文件 135266 2016-03-23 13:22 workFormworkForm-build-Debugdebugmain.obj
文件 365131 2016-03-23 13:22 workFormworkForm-build-Debugdebugmainwindow.obj
文件 2805 2016-03-23 10:24 workFormworkForm-build-Debugdebugmoc_dialog.cpp
文件 50077 2016-03-23 10:24 workFormworkForm-build-Debugdebugmoc_dialog.obj
文件 3455 2016-03-23 13:22 workFormworkForm-build-Debugdebugmoc_mainwindow.cpp
文件 134047 2016-03-23 13:22 workFormworkForm-build-Debugdebugmoc_mainwindow.obj
文件 131072 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.exe
文件 1591956 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.ilk
文件 638 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.intermediate.manifest
文件 2665472 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.pdb
文件 6948 2016-03-23 09:57 workFormworkForm-build-DebugMakefile
文件 7724 2016-03-23 09:57 workFormworkForm-build-DebugMakefile.Debug
文件 7814 2016-03-23 09:57 workFormworkForm-build-DebugMakefile.Release
文件 217 2016-03-22 16:24 workFormworkForm-build-Debugmine.txt
文件 233 2016-03-23 13:24 workFormworkForm-build-Debugmodified.txt
文件 820 2016-03-18 13:31 workFormworkForm-build-Debugmy.xml
文件 217 2016-03-22 16:01 workFormworkForm-build-Debug
one.txt
文件 217 2016-03-22 16:27 workFormworkForm-build-Debugone.txt
目录 0 2016-03-21 15:35 workFormworkForm-build-Debug
elease
文件 2029 2016-03-23 10:24 workFormworkForm-build-Debugui_dialog.h
文件 5351 2016-03-22 16:59 workFormworkForm-build-Debugui_mainwindow.h
文件 1929216 2016-03-23 13:22 workFormworkForm-build-Debugvc100.pdb
文件 3699 2016-03-23 13:22 workFormworkFormdialog.cpp
文件 334 2016-03-23 10:24 workFormworkFormdialog.h
............此处省略7个文件信息
#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 workFormworkForm
目录 0 2016-03-23 16:21 workFormworkForm-build-Debug
文件 233 2016-03-23 15:58 workFormworkForm-build-DebugAAA.txt
文件 234 2016-03-23 16:21 workFormworkForm-build-DebugAlist.txt
目录 0 2016-03-23 13:22 workFormworkForm-build-Debugdebug
文件 184909 2016-03-23 13:22 workFormworkForm-build-Debugdebugdialog.obj
文件 135266 2016-03-23 13:22 workFormworkForm-build-Debugdebugmain.obj
文件 365131 2016-03-23 13:22 workFormworkForm-build-Debugdebugmainwindow.obj
文件 2805 2016-03-23 10:24 workFormworkForm-build-Debugdebugmoc_dialog.cpp
文件 50077 2016-03-23 10:24 workFormworkForm-build-Debugdebugmoc_dialog.obj
文件 3455 2016-03-23 13:22 workFormworkForm-build-Debugdebugmoc_mainwindow.cpp
文件 134047 2016-03-23 13:22 workFormworkForm-build-Debugdebugmoc_mainwindow.obj
文件 131072 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.exe
文件 1591956 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.ilk
文件 638 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.intermediate.manifest
文件 2665472 2016-03-23 13:22 workFormworkForm-build-DebugdebugworkForm.pdb
文件 6948 2016-03-23 09:57 workFormworkForm-build-DebugMakefile
文件 7724 2016-03-23 09:57 workFormworkForm-build-DebugMakefile.Debug
文件 7814 2016-03-23 09:57 workFormworkForm-build-DebugMakefile.Release
文件 217 2016-03-22 16:24 workFormworkForm-build-Debugmine.txt
文件 233 2016-03-23 13:24 workFormworkForm-build-Debugmodified.txt
文件 820 2016-03-18 13:31 workFormworkForm-build-Debugmy.xm
文件 217 2016-03-22 16:01 workFormworkForm-build-Debug
one.txt
文件 217 2016-03-22 16:27 workFormworkForm-build-Debugone.txt
目录 0 2016-03-21 15:35 workFormworkForm-build-Debug
elease
文件 2029 2016-03-23 10:24 workFormworkForm-build-Debugui_dialog.h
文件 5351 2016-03-22 16:59 workFormworkForm-build-Debugui_mainwindow.h
文件 1929216 2016-03-23 13:22 workFormworkForm-build-Debugvc100.pdb
文件 3699 2016-03-23 13:22 workFormworkFormdialog.cpp
文件 334 2016-03-23 10:24 workFormworkFormdialog.h
............此处省略7个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)