Qt Creator (C++)保存文件

最近在学习QT Creator,感觉很是头大。可能是刚刚学的原因吧,感觉完全没有C#好,好多东西完全搞不懂。

C++虽然很灵活,但是也可能是太灵活了,总是搞得人一头雾水。

一个简简单单的保存文件,就让人费了半天劲。还是先记下来,防止以后用到时忘记。

一、首先在头文件内加入引用(即 ***.h文件内)

#include <QListWidget>
#include <QFileDialog>
#include <QMessageBox>

二、在头文件内加入方法声明(即 ***.h文件内)

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
void SaveFile();                                        //保存实时信息数据点击事件
};
#endif // MAINWINDOW_H

三、在源文件内添加方法的实现(即 ****.cpp文件内)

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
        DOTO....
}

MainWindow::~MainWindow()
{

}

void MainWindow::SaveFile()
{
    int count = ltwMsg->count ();
        if(count>0)
        {
            QString fileName = QFileDialog::getSaveFileName (this,
                        tr("保存实时数据"),"",tr("日志文件 (*.txt)"));
            if(!fileName.isEmpty ())
            {
                QFile file(fileName);
                if(!file.open (QIODevice::WriteOnly))
                {
                    QMessageBox msgBox;
                    msgBox.setText("保存文件失败!");
                    msgBox.exec();
                }
                else
                {
                    QString qs;
                    for(int i=0;i<count;i++)
                    {
                        QListWidgetItem *item = ltwMsg->item(i);
                        QString s = item->text();
                        qs = qs+s+"\r\n";
                    }
                    QTextStream stream(&file);
                    stream << qs;
                    stream.flush ();
                    file.close ();
                }
            }
        }
}

 

你可能感兴趣的:(C++)