文章目錄
頭文件
#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)");
}