qt通過QFileDialog獲取檔案路徑&儲存檔案&選擇資料夾
阿新 • • 發佈:2021-07-20
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;