QT打開和保存文件對話框


使用QFileDialog可以調用當前系統的文件對話框

包含頭文件:

#include <QFileDialog>

(1)文件打開對話框

QString    getOpenFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )

第一個參數parent,用於指定父組件。注意,很多Qt組件的構造函數都會有這么一個parent參數,並提供一個默認值0;
第二個參數caption,是對話框的標題;
第三個參數dir,是對話框顯示時默認打開的目錄,"." 代表程序運行目錄,"/" 代表當前盤符的根目錄(Windows,Linux下/就是根目錄了),也可以是平台相關的,比如"C:\\"等;
第四個參數filter,是對話框的后綴名過濾器;
多個文件使用空格分隔:比如我們使用"Image Files(*.jpg *.png)"就讓它只能顯示后綴名是jpg或者png的文件。
多個過濾使用兩個分號分隔:如果需要使用多個過濾器,使用";;"分割,比如"JPEG Files(*.jpg);;PNG Files(*.png)";
第五個參數selectedFilter,是默認選擇的過濾器;
第六個參數options,是對話框的一些參數設定,比如只顯示文件夾等等,它的取值是enum QFileDialog::Option,每個選項可以使用 | 運算組合起來。

如果我要想選擇多個文件怎么辦呢?Qt提供了getOpenFileNames()函數,其返回值是一個QStringList。你可以把它理解成一個只能存放QString的List,也就是STL中的list<string>。

示例:

QString file_name = QFileDialog::getOpenFileName(this,
        tr("Open File"), 
        "",
        "", 
        0);
    if (!fileName.isNull())
    {
        //fileName是文件名
        ...
    }
    else{
        //點的是取消
        ...
    }
        

 

(2)文件保存對話框

QString    getSaveFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 )

示例:

QString fileName = QFileDialog::getSaveFileName(this,
        tr("Open Config"),
        "",
        tr("Config Files (*.ifg)"));

    if (!fileName.isNull())
    {
        //fileName是文件名
    }
    else
    {
        //點的是取消
    }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM