Qt学习例子7——fileaccess

这篇博客通过Qt库展示了如何进行文本文件的读写操作,包括使用特定的类和方法来创建、读取、修改及删除文件。示例代码包含在filewidgets.h、filewidgets.cpp和main.cpp文件中,程序运行能够实现对文件的有效访问和管理。

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

文本文件的读写

 

//filewidgets.h

 

#ifndef FILELISTWIDGET_H
#define FILELISTWIDGET_H
#include <QWidget>
#include <QFile>
#include <QPushButton>
#include <QLineEdit>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QTextEdit>
class FileListWidget : public QWidget
{
    Q_OBJECT
public:
    explicit FileListWidget(QWidget *parent = 0);
private:
    QFile *m_file;
    QPushButton *m_btnSave;
    QPushButton *m_btnLoad;
    QTextEdit *m_txtedit;
signals:
public slots:
    void saveClicked();
    void loadClicked();
};
#endif // FILELISTWIDGET_H

 

//filewidgets.cpp

 

#include "filelistwidget.h"
#include <QTextStream>
FileListWidget::FileListWidget(QWidget *parent) :
    QWidget(parent)
  ,m_file(new QFile("listitems.txt"))
  ,m_btnSave(new QPushButton("Save"))
  ,m_btnLoad(new QPushButton("Load"))
  ,m_txtedit(new QTextEdit)
{
    QVBoxLayout *layoutAll=new QVBoxLayout;
    QHBoxLayout *bottom=new QHBoxLayout;
    bottom->addWidget(m_btnSave);
    bottom->addWidget(new QLineEdit("listitems.txt"));
    bottom->addWidget(m_btnLoad);
    layoutAll->addWidget(m_txtedit);
    layoutAll->addLayout(bottom);
    setLayout(layoutAll);
    connect(m_btnLoad,SIGNAL(clicked()),this,SLOT(loadClicked()));
    connect(m_btnSave,SIGNAL(clicked()),this,SLOT(saveClicked()));
}
void FileListWidget::saveClicked()
{
    if(!m_file->open(QIODevice::WriteOnly))//|QIODevice::Append
    {
        qDebug("Writing Error!");
        return;
    }
    else
    {
        QString content;
        content=m_txtedit->toPlainText();
        QTextStream *out=new QTextStream(m_file);
        *out<<content;
    }
    m_file->close();
}
void FileListWidget::loadClicked()
{
    m_file->open(QIODevice::ReadOnly);//|QIODevice::Text
    QTextStream *in=new QTextStream(m_file);
    QString temp(""),line;
    QStringList list;
    line=in->readLine();
    list<<line;
    temp=temp+line+"/n";
//   while(!m_file->atEnd())        //meet '/n' return eof
    while(line!=NULL)
    {
      line=in->readLine();
      temp=temp+line+"/n";
      list<<line;
    }
    m_txtedit->setPlainText(temp);
    m_file->close();
    // STL 风格的
    QStringList::const_iterator constIterator;
    for (constIterator = list.constBegin(); constIterator != list.constEnd();++constIterator)
        qDebug("Item: %s", (*constIterator).toLocal8Bit().constData());
 
    delete in;
}

 

//main.cpp

 

#include <QApplication>
#include "filelistwidget.h"
int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  FileListWidget *dlg=new FileListWidget;
  dlg->show();
  return a.exec();
}

 

 

程序运行结果:

Qt学习例子7鈥斺攆ileaccess

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值