当前位置: 首页 > news >正文

12.QT文件对话框 文件的弹窗选择-QFileDialog

目录

前言:

技能:

内容:

1. 界面

2.信号槽

 3.其他函数

参考:


前言:

通过按钮实现文件弹窗选择以及关联的操作

效果图就和平时用电脑弹出的选文件对话框一样


技能:

 QString filename = QFileDialog::getOpenFileName(this, "弹窗标题",
                                                    "E://","Images(*.png *.jpg)");

弹出对话框选择文件

内容:

1. 界面

首先简单的添加ui布局,line edit 、PushButton、label

2.信号槽

ui编辑模式中,右键PushButton转到槽,选择clicked( ),

完成槽函数,记得#include<QFileDialog>

这里是可以选择png和jpg类型的图片,然后显示在下面的label中

void Widget::on_pushButton_clicked()
{QString filename = QFileDialog::getOpenFileName(this, "弹窗标题","E://","Images(*.png *.jpg)");ui->lineEdit->setText(filename);ui->label->setPixmap(filename);
}

至于图片更完美的展示,可以看之前的文章

3.QT图片完整显示(联机VS2022版) 

主要是getopenFileName函数,在Qt6中的帮助文档和例子是这样的

[static] 
QString QFileDialog::getOpenFileName(QWidget *parent = nullptr,const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options()) QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),"/home",tr("Images (*.png *.xpm *.jpg)"));

返回值是QString,也就是文件的路径,可以拿这个路径干很多事,比如显示图片

第一个参数,父指针,我们就用this就好,这个必须有

第二个参数,应该是对话框的标题,后面的依次是文件路径和筛选器

文件路径只是提供快捷通道,弹窗内我们依然能选择不是这个路径的文件

但是筛选器是固定的,我们只能看到被筛选后的文件,弹窗内无法选择其他类型的,我们也可以用空的引号,这样可以选择所有类型,如果罗列多个用*隔开,参考官方例子。但是又好像很宽松,格式不对也能正常选择,这里不是很懂,懂哥可以评论讲一下

QString filename = QFileDialog::getOpenFileName(this, "弹窗标题","E://","");
 3.其他函数

还有很多其他的函数可以查看帮助文档,比如可以选取多个文件

参考:

【Qt学习系列】12.Qt文件对话框

http://www.lryc.cn/news/301512.html

相关文章:

  • ArcGIS学习(八)基于GIS平台的控规编制办法
  • 软件测试-自动化测试-面试题研究,知识要点,高频、重点知识点,自动化测试知识要点、知识梳理-PYTHON+自动化,评估试题
  • 一.重新回炉Spring Framework: 理解Spring IoC
  • 目标检测算法之YOLOv5的应用实例(零售业库存管理、无人机航拍分析、工业自动化领域应用的详解)
  • [蓝桥 2017]九宫幻方
  • Qt - 编译报错:“invalid use of incomplete type ‘class Ui::xxx‘ui(new Ui::xxx)”的解决方法
  • 基于Doris构建亿级数据实时数据分析系统
  • javascript中的prototype;javascript中的原型链
  • CI/CD部署
  • 定点数,定点数二维向量,定点数三维向量,定点数数学类
  • 安装ts-node有感
  • 飞天使-k8s知识点18-kubernetes实操3-pod的生命周期
  • 顺子日期 蓝桥杯
  • 基于 Python 的景区票务人脸识别系统,附源码
  • OpenAI全新发布的Sora,到底意味着什么?
  • 预防.locked.locked1勒索病毒攻击:保护数据安全
  • 【力扣hot100】刷题笔记Day5
  • 解锁Spring Boot中的设计模式—04.桥接模式:探索【桥接模式】的奥秘与应用实践!
  • [talib][python]ta-lib所有whl文件下载地址汇总
  • 【开源】JAVA+Vue.js实现农村物流配送系统
  • 锁相放大器,数字锁相放大器.C和python版的源代码
  • (02)Hive SQL编译成MapReduce任务的过程
  • 【C++初阶】值得一刷的字符串string相关oj题
  • 《Go 简易速速上手小册》第10章:微服务与云原生应用(2024 最新版)
  • 代码随想录算法训练营第34天| Leetcode 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球
  • 数据结构~二叉树(基础知识)
  • AI大模型学习笔记之四:生成式人工智能(AIGC)是如何工作的?
  • bat脚本 创建计划任务 一分钟设置ntp同步周期为60s
  • python数据分析numpy基础之mean用法和示例
  • 微服务学习 | Springboot整合Dubbo+Nacos实现RPC调用