功能需求: 如果要用QT来写一个简单的应用程序,实现将界面上的文本框的内容存储到指定目录文件中, 然后再从指定文件读取出来展示到界面上。 粗略设计的UI界面如图所示: 大概思路: 输入名字年龄,点击write 按钮,将名字年龄写入文件,然后点击read按钮,读出刚刚保存的信息,并展示到富文本框中。 完成这个功能需要使用 QFile 头文件,即要添加引用 如果使用 QDataStream 转换,则需要引用 按钮 write 的槽事件如下 这个方法中用到了两种方式,一种是直接对文件进行写操作,另一种是转化成流文件(转换成QDataStream/QTextStream流),说到这个顺带讲一下,Qt提供了辅助类简化文本文件/数据文件的读写的两种流方式: QTextStream:写入的数据全部转换为可读文本; QDataStream:写入的数据根据类型转换为二进制文件 代码中文件直接操作的write()也好还是转换成QDataStream 流以后再操作也好,实质上都是要转换成QByteArray,才能完成写操作。完成QString到QByteArray转换的方法比较常用的有toLatin1()、data()两种。 read 按钮对应的槽事件如下: 运行结果如下所示:
#include <QFile>
#include <QTextStream>
void MainWindow::on_write_bt_clicked()
{
QFile outfile("1.txt");//如果文件不存在,则创建该文件。路径在执行文件的上一级路径下。
outfile.open(QFileDevice::WriteOnly);
// //QDataStream
// QDataStream outStream(&outfile);
//// outStream<<ui->name_edit->text().toLatin1()<<ui->age_edit->text().toLatin1();//写进去的数据每个前面会有四个byte
// outStream.writeRawData((ui->name_edit->text()).toLatin1()+(ui->age_edit->text()).toLatin1(),((ui->name_edit->text()).toLatin1()+(ui->age_edit->text()).toLatin1()).size());
//QTextStream
QTextStream outStream(&outfile);
outStream.setCodec("UTF-8");
outStream<<ui->name_edit->text()<<ui->age_edit->text();
//文件流直接写
// outfile.write((ui->name_edit->text()).toLatin1()+(ui->age_edit->text()).toLatin1());
//
outfile.close();
}
void MainWindow::on_read_bt_clicked()
{
QString str;
QFile infile("1.txt");
infile.open(QFileDevice::ReadOnly);
// //QDataStream
// QDataStream inStream(&infile);
// QByteArray arry=infile.readAll();
// ui->read_tb->setText(arry);
QTextStream inStream(&infile);
QByteArray arry=infile.readAll();
ui->read_tb->setText(arry);
//文件流直接读取
// str=infile.readAll();
// ui->read_tb->setText(str);
infile.close();
}
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算