目录
[1. 界面](#1. 界面)
前言:
通过按钮实现文件弹窗选择以及关联的操作
效果图就和平时用电脑弹出的选文件对话框一样
技能:
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);
}
至于图片更完美的展示,可以看之前的文章
主要是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.其他函数
还有很多其他的函数可以查看帮助文档,比如可以选取多个文件