為了說(shuō)明QFileDialog::getOpenFileName()函數(shù)的用法,還是先把函數(shù)簽名放在這里:
 
QString QFileDialog::getOpenFileName (
          QWidget * parent = 0,
          const QString & caption = QString(),
          const QString & dir = QString(),
          const QString & filter = QString(),
          QString * selectedFilter = 0,
          Options options = 0 )
 
第一個(gè)參數(shù)parent,用于指定父組件。注意,很多Qt組件的構(gòu)造函數(shù)都會(huì)有這么一個(gè)parent參數(shù),并提供一個(gè)默認(rèn)值0;
 
第二個(gè)參數(shù)caption,是對(duì)話框的標(biāo)題;
 
第三個(gè)參數(shù)dir,是對(duì)話框顯示時(shí)默認(rèn)打開(kāi)的目錄,"." 代表程序運(yùn)行目錄,"/" 代表當(dāng)前盤符的根目錄(Windows,Linux下/就是根目錄了),也可以是平臺(tái)相關(guān)的,比如"C:\\"等;例如我想打開(kāi)程序運(yùn)行目錄下的Data文件夾作為默認(rèn)打開(kāi)路徑,這里應(yīng)該寫成"./Data/",若想有一個(gè)默認(rèn)選中的文件,則在目錄后添加文件名即可:"./Data/teaser.graph"
 
第四個(gè)參數(shù)filter,是對(duì)話框的后綴名過(guò)濾器,比如我們使用"Image Files(*.jpg *.png)"就讓它只能顯示后綴名是jpg或者png的文件。如果需要使用多個(gè)過(guò)濾器,使用";;"分割,比如"JPEG Files(*.jpg);;PNG Files(*.png)";
 
第五個(gè)參數(shù)selectedFilter,是默認(rèn)選擇的過(guò)濾器;
 
第六個(gè)參數(shù)options,是對(duì)話框的一些參數(shù)設(shè)定,比如只顯示文件夾等等,它的取值是enum QFileDialog::Option,每個(gè)選項(xiàng)可以使用 | 運(yùn)算組合起來(lái)。
 
如果我要想選擇多個(gè)文件怎么辦呢?Qt提供了getOpenFileNames()函數(shù),其返回值是一個(gè)QStringList。你可以把它理解成一個(gè)只能存放QString的List,也就是STL中的list<string>。