QT学习记录(一)在QT5中完成手动选择文件进行内容读取(多种文件格式)

Qt作为常用的UI设计软件,我们经常用到它完成一些UI的设计,以下便是实现通过选择文件实现读取文件内容的点击函数部分。
********************************分割线---------------------------------------------
1.使用fstream

void MainWindow::on_pushButton_clicked()
{
    char *buf = new char[1024];
    QString filename;
    int filesize = 0;
    filename = QFileDialog::getOpenFileName(this,tr("file"),"",tr("all(**)"));
    //文件选择类型为*任意
    QByteArray ba = filename.toLatin1();
    char *Tsfilename = ba.data();//QString转char *
    fstream fp;
    fp.open(Tsfilename,ios::in);//读入打开权限
    if(!fp.is_open())
    {
        qDebug()<<"open failed";
    }
    fp.seekg(0,ios::end);
    filesize = fp.tellg();
    int first_size = filesize;
    fp.seekg(0,ios::beg);//计算文件大小后归位置零
    while(first_size > 0)
    {
        fp.read(buf,1024);
        first_size -= 1024;
        for(int i = 0;i < 1024;i++)
        {
                cout<<buf[i];
        }
        cout<<endl; 
    }
    fp.close();
    qDebug()<<"first read over"<<endl;
    delete []buf;
}

********************************分割线---------------------------------------------
2.Qfile

void MainWindow::on_pushButton_clicked()
{
    unsigned char *buf = new unsigned char[188];
    QString filename;
    int filesize = 0;
    filename = QFileDialog::getOpenFileName(this,tr("file"),"",tr("ts(*.txt);;pic(*.jpg);;all(*)"));
    //设置多种类型支持txt、jpg以及任意文件类型
    QFile fp(filename);//直接打开指定路径的文件
    if(!fp.open(QIODevice::ReadOnly))
       qDebug()<<"open falid";
    else
       qDebug()<<"open success";//判断打开文件是否成功
    QTextStream stream(&fp);
    filesize = fp.size();
    while(filesize > 0)
    {
        fp.read((char *)buf,1024);
        filesize -= 1024;
        for(int i = 0;i < 1024;i++)
        {
        	cout<<buf[i];
        }
        cout<<endl;
    }
    fp.close();
    qDebug()<<"TS OVER"<<endl;
    delete []buf;
}
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值