2013-03-14 76 views
8

我嘗試在Mac OS X中創建「另存爲...」對話框。但我不想使用QFileDialog::getSaveFileName()函數,因爲對話框由此功能創建的是不是真正在Mac OS X Lion中生成。所以,我決定創建對話框,QFileDialog對象:QFileDialog:如何在「另存爲...」對話框中設置默認文件名

auto export_dialog(new QFileDialog(main_window)); 
export_dialog->setWindowModality(Qt::WindowModal); 
export_dialog->setFileMode(QFileDialog::AnyFile); 
export_dialog->setAcceptMode(QFileDialog::AcceptSave); 

所有工作正常,但有一個問題。我無法爲保存的文件設置默認名稱,因此用戶必須每次手動輸入此名稱。我知道函數QFileDialog::getSaveFileName()允許通過第三個參數設置默認文件名,dirhttp://qt-project.org/doc/qt-4.8/qfiledialog.html#getSaveFileName)。但是如何設置這個默認名稱而不使用這個函數?

我可以通過QFileDialog::setDefaultSuffix()函數設置保存文件的默認後綴,但是我需要設置整個默認名稱,不僅僅是默認後綴。

我試過使用QFileDialog::setDirectory()函數,但它只設置要保存的目錄,沒有保存文件的名稱。

我在Mac OS X Lion上使用Qt 4.8.1。

在此先感謝您的幫助。

+3

問題被刪除。我發現默認文件名可以通過QFileDialog :: selectFile()函數來設置。謝謝。 – 2013-03-15 04:14:13

+2

這是沒有問題的消除。如果將來有人會發現同樣的問題,他怎麼能找到你的答案? – 2013-03-15 12:14:15

+0

我在這裏找到它:http://www.qtcentre.org/threads/49434-QFileDialog-set-default-name?highlight=QFileDialog。 – 2013-03-15 14:05:46

回答

2

我搜索谷歌set default filename qfiledialog併發生在整個討論。

我發現使用selectFile("myFileName");只適用於該文件實際存在。在我的情況下,意圖是創建一個新文件,可以選擇覆蓋現有文件。

爲我工作溶液(QT 5.3.2)如下:

QFileDialog svDlg; 

QString saveFileName = svDlg.getSaveFileName(this, caption, preferredName, filter); 

在上述例子中,preferredName是包含「C爲QString:/預先選擇的名稱。 TXT」

希望幫助

相關問題