qt通過QFileDialog獲取文件路徑&保存文件&選擇文件夾


1、獲取文件路徑對話框

file_name = QFileDialog::getOpenFileName(self,"open file dialog","C:\Users\Administrator\Desktop","Txt files(*.txt)") ##"open file Dialog "為文件對話框的標題,第三個是打開的默認路徑,第四個是文件類型過濾器 

 

2、保存文件對話框

file_path =  QFileDialog::getSaveFileName(self,"save file","C:\Users\Administrator\Desktop" ,"xj3dp files (*.xj3dp);;all files(*.*)") # file_path即為文件即將保存的絕對路徑。形參中的第二個為對話框標題,第三個為打開后的默認給路徑,第四個為文件類型過濾器

保存文件:

QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), "", tr("Curve TagName Files (*.TXT)")); if (!fileName.isEmpty()) { //一些處理工作,寫數據到文件中
    QList<QwtPlotCurve*>& plotCurves = m_plot->getPlotCurves(); QFile file(fileName); if (!file.open(QIODevice::ReadWrite | QIODevice::Text)) QMessageBox::critical(this, tr("Error"), tr("Failed to open file \"%1\" for save!").arg(fileName), QMessageBox::Ok); //write file
    QTextStream wr(&file); for(int i=0; i<plotCurves.count(); ++i) { wr <<plotCurves[i]->title().text() <<"\n"; } file.close(); } else
    return;            

 

3、選擇文件夾對話框

dir_path=QFileDialog::getExistingDirectory(self,"choose directory","C:\Users\Administrator\Desktop") # dir_path即為選擇的文件夾的絕對路徑,第二形參為對話框標題,第三個為對話框打開后默認的路徑。 以上返回的都是QString類型的對象,若想不出現編碼問題,建議用如下語句將QString轉換為python的string對象 str=unicode(your_path.toUtf8(), ‘utf-8‘, ‘ignore‘) 

根據指定文件夾找對應文件:

QString fileName(tr("ok.txt")) ; QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),"/home", QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); QDir d; d.mkpath(dir);//可以不用,因為路徑已經有了,就不用mk了
    QFile file(dir+"/"+fileName); file.open(QFile::WriteOnly);

 

另存為:

QString path; path = QDir::currentPath() + "/CscanData/Cscan.bmp"; QString filename = QFileDialog::getSaveFileName(this, tr("Save As"), path, tr("Image Files (*.bmp)")); if(!filename.isNull()) { //一些處理工作,復制
    QFile::copy(path+ filename); } else    
    return;

 

 

 

 

 

參考鏈接:https://www.136.la/python/show-13717.html

     https://blog.csdn.net/bzhxuexi/article/details/10044037


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM