QT 文件對話框(QFileDialog)


1.選擇文件(上傳、打開...)

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

getOpenFileName()函數參數比較多,比較難記Qt提供了另外的寫法:

 1  QFileDialog *fileDialog = new QFileDialog(this); 
 2         fileDialog->setWindowTitle(tr("Open Image")); 
 3         fileDialog->setDirectory("."); 
 4         fileDialog->setFilter(tr("Image Files(*.jpg *.png)")); 
 5         if(fileDialog->exec() == QDialog::Accepted) { 
 6                 QString path = fileDialog->selectedFiles()[0]; 
 7                 QMessageBox::information(NULL, tr("Path"), tr("You selected ") + path); 
 8         } else { 
 9                 QMessageBox::information(NULL, tr("Path"), tr("You didn't select any files.")); 
10         }

這兩種寫法雖然功能差別不大,但是彈出的對話框卻並不一樣。getOpenFileName()函數在Windows和MacOS X平台上提供的是本地的對話框,而QFileDialog提供的始終是Qt自己繪制的對話框(還記得前面說過,Qt的組件和Swing類似,也是自己繪制 的,而不都是調用系統資源API)。

2.選擇多個文件(一次選擇多個上傳)

1 QStringList QFileDialog::getOpenFileNames(QWidget *parent = 0,
2                              const QString &caption = QString(),
3                              const QString &dir = QString(),
4                              const QString &filter = QString(),
5                              QString *selectedFilter = 0,
6                              Options options = 0);

 

3.選擇文件(保存文件)

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

4.選擇文件路徑(選擇文件的默認下載路徑):

1 QString getExistingDirectory(QWidget *parent = 0,
2                                         const QString &caption = QString(),
3                                         const QString &dir = QString(),
4                                         Options options = ShowDirsOnly);

 

轉載:QT之文件對話框-http://www.cnblogs.com/ylan2009/archive/2012/05/06/2486606.html


免責聲明!

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



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