Qt的QFileDialog使用方法

頭文件

#include <QFileDialog>

Static Public Members 靜態公共成員

成員名稱 返回值 說明
getExistingDirectory QString 返回用戶選中的文件夾路徑
getExistingDirectoryUrl QUrl 與QFileDialog::getExistingDirectory()的主要區別來自於爲用戶提供的選擇遠程目錄的能力
getOpenFileName QString 返回用戶選中的文件名
getOpenFileNames QStringList 返回用戶選中的多條文件名
getOpenFileUrl QUrl 爲用戶提供的選擇遠程文件的能力
getOpenFileUrls QList<QUrl> 爲用戶提供的選擇多個遠程文件的能力
getSaveFileName QString 保存本地對話框
getSaveFileUrl QUrl 爲用戶提供保存遠程保存文件的對話框

Options 對話框選項

名稱 說明
QFileDialog::ShowDirsOnly 僅在文件對話框中顯示目錄。默認情況下,文件和目錄都顯示出來。(僅在目錄文件模式下有效)
QFileDialog::DontResolveSymlinks 不要在文件對話框中解析符號鏈接。默認情況下符號鏈接被解析
QFileDialog::DontConfirmOverwrite 不要詢問是否選擇了現有的文件。默認情況下請求確認
QFileDialog::DontUseNativeDialog 不要使用本機文件對話框。默認情況下,除非使用包含Q_OBJECT宏的QFileDialog子類,或者平臺沒有所需類型的本機對話框,否則將使用本機文件對話框
QFileDialog::ReadOnly 指示模型是隻讀的
QFileDialog::HideNameFilterDetails 指示文件名篩選器細節是否隱藏
QFileDialog::DontUseSheet 在以前的Qt版本中,如果靜態函數有一個父函數,那麼靜態函數將默認創建一個工作表。這不再被支持,在Qt 4.5中什麼也不做,靜態函數將始終是一個應用程序模式對話框。如果希望使用工作表,可以使用QFileDialog::open()
QFileDialog::DontUseCustomDirectoryIcons 始終使用默認的目錄圖標。有些平臺允許用戶設置不同的圖標。自定義圖標查找會對網絡或可移動驅動器的性能造成很大影響。設置此選項將啓用圖標提供程序中的QFileIconProvider::DontUseCustomDirectoryIcons選項。這個enum值是在Qt 5.2中添加的。

機翻…我太難了 w t n l

UI界面(右邊那個窗體):
在這裏插入圖片描述
由於我是從ui界面轉到槽,來寫的槽函數,所以沒有手寫connect函數

getExistingDirectory 返回用戶選中的文件夾路徑

//獲取文件夾路徑
void Widget::on_buttonDirectory_clicked()
{
    QString path = QFileDialog::getExistingDirectory(
                this,               //指定父對象
                "獲取一個文件夾路徑",  //標題
                "../");             //工作路徑
    QString tempStr= QString("%1 %2").arg("當前獲取的文件夾路徑爲:").arg(path);
    ui->textEdit->setText(tempStr);
}

getOpenFileName 返回用戶選中的文件路徑

//獲取文件路徑
void Widget::on_buttonFileName_clicked()
{
    QString path = QFileDialog::getOpenFileName(
                this,                   //指定父對象
                "獲取文件路徑",           //標題
                "../",                  //工作路徑
                "TXT(*.txt);;Image(*.png *jpg)");        //過濾格式;;過濾格式...
    QString tempStr= QString("%1 %2").arg("當前獲取的文件路徑爲:").arg(path);
    ui->textEdit->setText(tempStr);
}

填寫過濾格式參數時,是可以過濾多個格式的,只需在後面加上 " ;; "然後繼續填寫 格式名(*.後綴)。

"TXT(*.txt) ;; Image(*.png *jpg)"

getOpenFileNames 返回用戶選中的多個文件路徑

//獲取多個文件路徑
void Widget::on_buttonFileNames_clicked()
{
    QStringList pathList = QFileDialog::getOpenFileNames(
                this,                   //指定父對象
                "獲取多個文件路徑",        //標題
                "../",                  //工作路徑
                "TXT(*.txt)");          //過濾格式
    ui->textEdit->setText(QString("您當前選擇了 %1 個文件").arg(QString::number(pathList.size())));
    for(int i = 0;i < pathList.size(); ++i)
    {
        QString tempStr= QString("當前獲取的文件 %1 的路徑爲:%2")
                .arg(i+1)
                .arg(pathList.at(i));
        ui->textEdit->append(tempStr);
    }
}

在上方3個例子中都有使用到QT字符串格式化QString::arg(),點這裏有單獨的一篇關於QT字符串格式化的文章哦

getSaveFileName 保存文件對話框

//保存文件對話框
void Widget::on_buttonSaveFile_clicked()
{
    QString path = QFileDialog::getSaveFileName(
                this,
                "保存文件對話框",
                "../",
                "TXT(*.txt)");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章