QFileDialog fileDialog(this, QString("請選擇文件夾"), QString("/"), QString("文件夾"));
fileDialog.setLabelText(QFileDialog::Accept, "確定");//文字可以修改成你自己想要的
fileDialog.setLabelText(QFileDialog::Reject, "取消");//文字可以修改成你自己想要的
//fileDialog.setFileMode(QFileDialog::DirectoryOnly); //只顯示文件夾
//fileDialog.setOption(QFileDialog::DontUseNativeDialog, true); //沒有這句話,後面的findChild是空
//fileDialog.setOption(QFileDialog::ShowDirsOnly)
fileDialog.exec();
其中QFileDialog fileDialog(this, QString("請選擇文件夾"), QString("/"), QString("文件夾"))的QString("文件夾")是文件過濾,你可以修改成自己要過濾的格式比如tr(
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml);;all file(*)")),即
QFileDialog fileDialog(this, QString("請選擇文件夾"), QString("./"), tr("Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml);;all file(*)"));
//或者
QFileDialog fileDialog(this, QString("請選擇文件夾"), QString("./"), tr("圖片 (*.png *.xpm *.jpg);;文本文件 (*.txt);;XML 文件 (*.xml);;所有文件(*)"));
而有一個比較坑的是如果你使用的是getOpenFileName,那麼你無法使用setLabelText來修改按鈕名稱。反正目前我測試了很多次,只要使用getOpenFileName都無法使用setLabelText來修改按鈕名稱。這個可能是qt的bug或者它本來的設計就是如此。也有可能我使用方法有誤。如果大家有更好的方法,歡迎大家留言討論交流。
QFileDialog ::getOpenFileName的使用 可以參考我的另一篇博文:
qt QFileDialog ::getOpenFileName 打開文件對話框