《Qt5:文件对话框简单使用示例》

QFileDialog创建文件对话框


可以使用QFileDialog类创建一个文件对话框,用于选择文件夹和普通文件,可以选择单个文件也可以选择多个文件,可以限制文件的格式也可以不限制,这里的选择其实就是获取文件夹和普通文件的路径,后续再利用获取的路径打开相应的文件,如下图所示。

《Qt5:文件对话框简单使用示例》_第1张图片

以下是QFileDialog类常用的公有静态成员函数,通过这些公有静态成员函数可以快速的创建各种文件对话框。

getExistingDirectory:获取已存在文件夹路径

QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                                "/home",
                                                QFileDialog::ShowDirsOnly
                                                | QFileDialog::DontResolveSymlinks);

getExistingDirectoryUrl:和getExistingDirectory差不多,区别在于可以获取远程文件的路径

getOpenFileName:获取已存在单个限定格式文件的路径,通过筛选器限定文件格式。

QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
                                                "/home",
                                                tr("Images (*.png *.xpm *.jpg)"));

 如果要选择多种格式, 可以使用两个分号';;'分开

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

getOpenFileNames:获取已存在多个限定格式文件的路径,通过筛选器限定文件格式

QStringList files = QFileDialog::getOpenFileNames(
                        this,
                        "Select one or more files to open",
                        "/home",
                        "Images (*.png *.xpm *.jpg)");

getOpenFileUrl:和getOpenFileName差不多,区别在于可以获取远程文件的路径

getOpenFileUrls:和getOpenFileNames差不多,区别在于可以获取远程文件的路径

getSaveFileName:获取用户选择的文件名,该文件不必存在

QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
                           "/home/jana/untitled.png",
                           tr("Images (*.png *.xpm *.jpg)"));

getSaveFileUrl:和getSaveFileName差不多,区别在于可以获取远程文件的路径

 

QFileInfo获取文件信息


1、判断是否是普通文件、目录、符号链接、隐藏文件、文件路径是绝对的还是相对的、读写。

2、获取文件名称、文件路径、目录路径、文件时间、上次修改文件的日期和本地时间、上次读取(访问)文件的日期和本地时间、文件的路径不包括文件名、文件大小、符号链接指向的文件或目录的绝对路径、文件创建/生成的日期和时间。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    OpenFile();
    selectFile();
}

MainWindow::~MainWindow()
{
    delete ui;
}
/*
void MainWindow::OpenFile()
{
    //获取已存在单个限定格式文件的路径
    QString fileName = QFileDialog::getOpenFileName(this,tr("Open Image"), "", tr("Image Files (*.png *.jpg *.bmp)"));
    //文件绝对路径"F:/图片/c5387854a94f7fa4cce004ede8e7123a.jpg"
    qDebug()<<"文件名:"<setWindowTitle(tr("打开图片"));
    //设置默认文件路径
    fileDialog->setDirectory(".");
    //设置文件过滤器
    fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
    //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
    fileDialog->setFileMode(QFileDialog::ExistingFile);
    //设置视图模式
    fileDialog->setViewMode(QFileDialog::Detail);
    //打印所有选择的文件的路径
    QString fileName;
    if(fileDialog->exec())
    {
       fileDialog->selectFile(fileName);
       qDebug()<setWindowTitle(tr("打开图片"));
    //设置默认文件路径
    fileDialog->setDirectory(".");
    //设置文件过滤器
    fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
    //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
    fileDialog->setFileMode(QFileDialog::ExistingFiles);
    //设置视图模式
    fileDialog->setViewMode(QFileDialog::Detail);
    //打印所有选择的文件的路径
    QStringList fileNames;
    if(fileDialog->exec())
    {
        fileNames = fileDialog->selectedFiles();
    }
    foreach(QString str,fileNames)
    {
        qDebug()<

《Qt5:文件对话框简单使用示例》_第2张图片

 

你可能感兴趣的:(《QT学习笔记》)