Qt5.8之getOpenFileName,getSaveFileName,getOpenFileNames
1.標頭檔案
#include<QFileDialog>
2.用處
這幾個函式都是QFileDialog這個類中的靜態函式,可以呼叫當前系統的檔案對話方塊。具體來講:
getOpenFileName返回一個被使用者選中的檔案的路徑,前提是這個檔案是存在的。
getSaveFileName返回一個被使用者選中的檔案的路徑,這個檔案可以是不存在的。
getOpenFileNames返回一個或多個被使用者選中的檔案的路徑,前提是這些檔案是存在的。
3.函式引數和返回值
這幾個函式的函式引數都是一樣的,只有一點需要注意getOpenFileNames返回的是QStringList,而getOpenFileName和getSaveFileName返回的是QString。下面以getOpenFileName為例說明。
QString getOpenFileName(QWidget *parent = Q_NULLPTR,
const QString &caption = QString(),
const QString &dir = QString(),
const QString &filter = QString(),
QString *selectedFilter = Q_NULLPTR,
Options options = Options())
第一個引數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,每個選項可以使用 | 運算組合起來。
4.簡單用法
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include<QFileDialog> 4 MainWindow::MainWindow(QWidget *parent) : 5 QMainWindow(parent), 6 ui(new Ui::MainWindow) 7 { 8 ui->setupUi(this); 9 } 10 11 MainWindow::~MainWindow() 12 { 13 delete ui; 14 } 15 16 void MainWindow::on_openButton_clicked() 17 { 18 19 QString filename=QFileDialog::getOpenFileName(this, "開啟檔案", "預設檔名"); 20 ui->openEdit->setText(filename); 21 } 22 23 void MainWindow::on_saveButton_clicked() 24 { 25 QString filename1=QFileDialog::getSaveFileName(this, "選擇儲存檔案路徑", "預設檔名"); 26 ui->saveEdit->setText(filename1); 27 28 } 29 30 void MainWindow::on_openButton2_clicked() 31 { 32 33 QStringList filenames=QFileDialog::getOpenFileNames(this, "選擇儲存檔案路徑", "預設檔名"); 34 for(int i=0;i<filenames.size();i++) 35 { 36 37 ui->openEdits->append(filenames.at(i)); 38 } 39 40 }
step1.開啟檔案
step2.得到開啟檔案的路徑