qt通过QFileDialog获取文件路径&保存文件&选择文件夹

这篇具有很好参考价值的文章主要介绍了qt通过QFileDialog获取文件路径&保存文件&选择文件夹。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 引言

        QT是一款常用的UI设计工具, 我们在日常开发中经常需要对文件或者文件夹进行操作,下面将介绍QT对于获取文件路径&保存文件&选择文件夹等场景的获取的伪代码. 

注:适用于各语言的QT,比如python的pyQT之类的

二.获取文件路径对话框

file_name = QFileDialog::getOpenFileName(self,"open file dialog","C:\Users\Administrator\Desktop","Txt files(*.txt)")  
##"open file Dialog "为文件对话框的标题,第三个是打开的默认路径,第四个是文件类型过滤器 

三.保存文件对话框

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;            

四.选择文件夹对话框

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);

另存为:文章来源地址https://www.toymoban.com/news/detail-738924.html

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;

到了这里,关于qt通过QFileDialog获取文件路径&保存文件&选择文件夹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包