Qt中TreeModel中读取文件内容进行显示注意事项

本文介绍了在Qt中使用TreeModel显示TXT文件内容时需要注意的问题,通过案例展示了如何打开和读取文件,并利用file.pos()和file.seek()来控制指针位置,以实现理想的界面显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt中TreeModel中读取文件内容进行显示注意事项

根据案例,为实现在读取txt文件中的内容显示在treeView界面内实现下图(树模型)效果,本次主要讲解我遇到的困难:

在这xia里插入图效果图片描述
以下代码实现文件的打开、读取,为更好的展示效果,我运用file.pos()函数定位指针位置,file.seek()函数跳转指针位置。

void Widget::setTreeView(){
    QFile file(":/default.txt");
    file.open(QIODevice::ReadOnly);
    cout<<"file.pos start:"<<file.pos()<<endl;
    cout<<"file.readAll():"<<file.readAll().toStdString()<<endl;
    cout<<"file.pos end:"<<file.pos()<<endl;
    file.seek(0);
    cout<<"file.pos start1:"<<file.pos()<<endl;
    cout<<"file.readAll()1:"<<file.readAll().toStdString()<<endl;
    cout<<"file.pos end1:"<<file.pos()<<endl;
    file.seek(0);

    static QString TreeModelData(file.readAll());  //静态变量存储,否则函数调用结束后会失效,不显示;也可定义成员变量进行实现;《《《《《非常重要》》》》》
    treemodel= new TreeModel(TreeModelData,ui->treeView);
    file.close();
    ui->treeView->setModel(treemodel);

}
    readAll()函数只能读取一次,读取后 相当于指针发生偏移,不会自动归位,如果下次继续读取,结果将为空;需要注意的是内容并没有删除,只是指针发生偏移而已。
     seek()函数会将指针重新定位,这样就可以继续实现读取内容。
     最重要的是内存的处理,尤为重要。
file.pos start:0
file.readAll():。。。。。。。。
file.pos end:2017
file.pos start1:0
file.readAll()1:。。。。。。。。
file.pos end1:2017

以上为实现的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值