• 大小: 1.75MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-13
  • 语言: 其他
  • 标签: Qtc++  

资源简介

利用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.xml
     文件         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个文件信息

评论

共有 条评论