QT文件讀寫操作筆記

補一下這部分的筆記 簡單的東西也記一下

 

 

 

 

操作系統一般都會提供一些列的標準對話框,如文件選擇、字體選擇、顏色選擇等,這些標準對話框爲應用層序提供了一致的觀感。Qt對這些標準對話框都定義了相關的類,如:QFileDialog、QFontDialog、QColorDialog、QInputDialog、QMessageBox、QPrintDialog、QErrorMessage、QProgressDialog

 

 

QFileDialog

QFileDialog類是用於打開和保存文件的標準對話框。 QFileDialog類繼承QDialog類;

QFileDialog在打開文件時使用了文本過濾器,用於顯示指定擴展名的文件。也可以設置使用QFileDialog打開文件時的起始目錄和指定擴展名的文件。

 

使用QFileDialog有兩種方法,一種是比較簡單的使用“靜態函數法”,另一種是可以自定義各個細節的“構造函數法”

官網手冊:

 

QString    getExistingDirectory(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), Options options = ShowDirsOnly)
QUrl    getExistingDirectoryUrl(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), Options options = ShowDirsOnly, const QStringList & supportedSchemes = QStringList())
QString    getOpenFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0)
QStringList    getOpenFileNames(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0)
QUrl    getOpenFileUrl(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0, const QStringList & supportedSchemes = QStringList())
QList<QUrl>    getOpenFileUrls(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0, const QStringList & supportedSchemes = QStringList())
QString    getSaveFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0)
QUrl    getSaveFileUrl(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0, const QStringList & supportedSchemes = QStringList())

 

 

 

函數:

getOpenFileName

比如這裏我在triggered()中使用getOpenFileName

 


#include "mainwindow.h"
#include "ui_mainwindow.h"


#include <QTextCodec>
#include <QFileDialog>
#include <QString>
#include <QDebug>
#include <QByteArray>
#include <string.h>
#define cout qDebug()




void
MainWindow::on_actiondakai_2_triggered() { QString fileName = QFileDialog::getOpenFileName(); cout<<"====="<<fileName<<"========"; }

 

 

 

 

 

 

 

getExistingDirectory

void MainWindow::on_actiondakai_2_triggered()
{
//    QString fileName = QFileDialog::getOpenFileName();
    QString fileName = QFileDialog::getExistingDirectory(NULL,"caption",".");
     cout<<"====="<<fileName<<"========";

}

 

 

 

其他方法 大同小異不再敘述。

 

getExistingDirectoryUrl
和getExistingDirectory類似,功能也是獲取文件夾路徑,最大的區別在於參數裏的路徑是QUrl類型,這爲用戶提供了選擇遠程目錄的能力。

 

getOpenFileUrl

獲取遠程文件
爲用戶提供了獲取遠程文件路徑的能力

 

getOpenFileUrls

獲取多個遠程文件
可以得到多個遠程文件路徑

 

getOpenFileNames

獲取多個本地文件

 

 

getSaveFileName

保存本地文件對話框

 

getSaveFileUrl

保存遠程文件對話框

 

 

 

 

 

 

 

 

除了靜態函數 還可以利於構造函數自定義打開文件的細節

構造一個QFileDialog對象:

QFileDialog fd;

 

設置是打開還是保存文件對話框 AcceptMode

fd.setAcceptMode(QFileDialog::AcceptOpen);//文件對話框爲打開類型

fd.setAcceptMode(QFileDialog::AcceptSave);//文件對話框爲保存類型

 

 

設置對話框顯示信息的詳細程度

fd.setViewMode(QFileDialog::Detail);//詳細
fd.setViewMode(QFileDialog::List);//僅列表

 

 

設置對話框返回

fd.setFileMode(QFileDialog::AnyFile);//文件名,無論是否存在

fd.setFileMode(QFileDialog::ExistingFile);//存在的,單個文件名

fd.setFileMode(QFileDialog::Directory);//文件夾名

fd.setFileMode(QFileDialog::ExistingFiles);//多文件

 

 

設置標題

fd.setWindowTitle("標題");

 

設置默認後綴

fd.setDefaultSuffix("txt");

 

 

 

獲取對話框中的目錄地址

QDir dir = fd.directory();qDebug() << dir;

 

 

返回文件圖標提供者 

QFileIconProvider * QFileDialog::iconProvider() const 

 

 

設置歷史目錄setHistory

    QStringList dirLIst;
    dirLIst << "C:\\Intel" ;//添加了個路徑
 
    fileDlg->setHistory(dirLIst);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章