2013-12-19 37 views
0

簡要說明:我的Qt工具,我想,一旦用戶下面的東西擊中了關閉按鈕發生如何使用完整路徑檢索文件名數據寫入它

  • 1)文件對話框,框中將顯示保存/取消選項,並在其中包含 默認文件名。 2)如果用戶已將該文件保存在其計算機上的不同位置,我應該能夠在該保存的文件上寫入日誌。

我已經完成了第一部分,但我對如何在用戶已關閉對話框時檢索具有完整路徑的文件名無能爲力。

第1部分的MY代碼如下所示。

void some_class ::on_write_file() 
    { 

    // some code .. 
    bla bla bla 
    switch(set_file_name_for_logging(QString::fromStdString(filename) , this)) 
    { 
     case QDialog::Accepted : 
     std::cout <<" Retrive filename and full path name from the location where user has saved the file " and write on it; 
     break; 

    case QDialog::Rejected : 
    break; 
     default : 
     throw_error("Unexpected return value from save_ dump file dialog"); 
     break; 
    } 
    } 

} 

int set_file_name_for_logging(const QString& str, som_class *cal) 
    { 
     QFileDialog file_dialog(cal); 
     file_dialog.setDirectory("."); 
     file_dialog.setAcceptMode(QFileDialog::AcceptSave); 
     file_dialog.setNameFilter( ("Text files (*.txt)")); 
     file_dialog.selectFile(str); 
     int ret = file_dialog.exec(); 
     return ret ; 
} 
+0

http://qt-project.org/doc/qt-5.1/qtwidgets/qfiledialog.html#selectedFiles? – lpapp

+0

感謝大家的快速回復..我已經解決了問題 – samprat

+0

好的,希望我們有用。 :) – lpapp

回答

0

寫在我的評論,你可以使用following method

QStringList中QFileDialog :: selectedFiles()const的

返回包含在對話框中選擇文件的絕對路徑的字符串列表。如果未選擇文件,或者模式不是ExistingFiles或ExistingFile,selectedFiles()將在視口中包含當前路徑。

另外,請注意,您的代碼將需要一些重構實際上通過QFileDialog或路徑字符串本身。目前,沒有直接訪問他們。

如果您選擇以某種方式傳遞QFileDialog,那麼您可以獲取字符串列表,並且它只包含您的案例中的一個項目,因此您可以使用便捷方法first()

2

您可以訪問使用file_dialog.selectedFiles()所選擇的文件。也看看靜態功能QFileDialog::getSaveFileName

相關問題