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

目录

前言:

技能:

内容:

[1. 界面](#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中

cpp 复制代码
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中的帮助文档和例子是这样的

cpp 复制代码
[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就好,这个必须有

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

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

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

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

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

参考:

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

相关推荐
程序员老舅1 分钟前
C++高并发精髓:无锁队列深度解析
linux·c++·内存管理·c/c++·原子操作·无锁队列
划破黑暗的第一缕曙光14 分钟前
[C++]:2.类和对象(上)
c++·类和对象
季明洵16 分钟前
C语言实现单链表
c语言·开发语言·数据结构·算法·链表
墨雪不会编程24 分钟前
C++之【深入理解Vector】三部曲最终章
开发语言·c++
cpp_250126 分钟前
P9586 「MXOI Round 2」游戏
数据结构·c++·算法·题解·洛谷
浅念-31 分钟前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
kyle~33 分钟前
ROS2---QoS策略
c++·机器人·ros2
小宋102141 分钟前
Java 项目结构 vs Python 项目结构:如何快速搭一个可跑项目
java·开发语言·python
爱吃生蚝的于勒43 分钟前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
一晌小贪欢1 小时前
Python 爬虫进阶:如何利用反射机制破解常见反爬策略
开发语言·爬虫·python·python爬虫·数据爬虫·爬虫python