QTextStream的例子

QTextStream的帮助文档

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_but_read_clicked();

    void on_but_wirte_clicked();

    void on_fun_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QFileDialog>
#include <QTextStream>
#include <QDebug>
//宏定义qDebug() 改为 cout,并且修改其输出格式化为:  [...widget.cpp:88] 输出内容
#define cout qDebug() << "[" << __FILE__ << ":" << __LINE__ << "]"
//__FILE__  : 当前执行该代码的文件路径。 __LINE__ : 当前输出代码的行数

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}


//读数据
void Widget::on_but_read_clicked()
{
    QString path = QFileDialog::getOpenFileName(
                this,
                "标题",
                "../",
                "TXT(*.txt)");

    QFile file(path);

    file.open(QIODevice::ReadOnly);

    QTextStream stream(&file);
    stream.setCodec("UTF-8");
    
    QString str;
    //文件没有读完
    while(stream.atEnd() == false)
    {
    	//读取一行数据
         str = stream.readLine();
         //将读取的数据显示在textEdit
         ui->textEdit->append(str);
         //不指定编码的时候需要下面一些转换
         //cout << str.toUtf8().data();
    }
    file.close();

}

//写数据
void Widget::on_but_wirte_clicked()
{
    QString str = ui->textEdit->toPlainText();

    QString path = QFileDialog::getOpenFileName(
                this,
                "标题",
                "../",
                "TXT(*.txt)");

    QFile file(path);

    file.open(QIODevice::WriteOnly);
	
    QTextStream stream(&file);
    
    stream.setCodec("UTF-8");
    
    stream << str;
    file.close();
    ui->textEdit->setText("");
}


//写数据
void Widget::on_fun_clicked()
{
    QString str = ui->textEdit->toPlainText();

    QString path = QFileDialog::getOpenFileName(
                this,
                "标题",
                "../",
                "TXT(*.txt)");
	//创建QFile对象
    QFile file(path);
	//打开方式
    file.open(QIODevice::ReadWrite);
    //指定设备
    QTextStream stream(&file);
    //设置编码
    stream.setCodec("UTF-8");
    //设置字符串宽度
    stream.setFieldWidth(30);
    //设置对其齐格式
    stream.setFieldAlignment(QTextStream::AlignRight);
    //设置填充字符
    stream.setPadChar('*');
	//写入数据
    stream << str;
	//关闭文件
    file.close();
    //清空textEdit
    ui->textEdit->setText("");
}

其他的没有贴出来说明是没有变的。

UI界面:

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值