您的位置:首页 > 娱乐 > 明星 > 国企广告公司有哪些_深圳电器公司招聘_网站怎么seo关键词排名优化推广_电商培训机构哪家好

国企广告公司有哪些_深圳电器公司招聘_网站怎么seo关键词排名优化推广_电商培训机构哪家好

2025/4/6 1:38:58 来源:https://blog.csdn.net/TechNomad/article/details/146487158  浏览:    关键词:国企广告公司有哪些_深圳电器公司招聘_网站怎么seo关键词排名优化推广_电商培训机构哪家好
国企广告公司有哪些_深圳电器公司招聘_网站怎么seo关键词排名优化推广_电商培训机构哪家好

文章目录

    • 一、QFileDialog的介绍
    • 二、QFileDialog的常用静态方法
    • 三、完整示例

一、QFileDialog的介绍

QFileDialog 是 Qt 框架中提供的一个用于文件选择的标准对话框类,它允许用户在应用程序中选择文件或目录。它是跨平台的,在不同操作系统上会自动适配本地风格的文件对话框。

QFileDialog 提供以下主要功能:

  • 打开单个文件
  • 打开多个文件
  • 选择目录
  • 保存文件
  • 文件过滤
  • 设置默认目录和文件名

二、QFileDialog的常用静态方法

1. 获取打开的文件名

QString fileName = QFileDialog::getOpenFileName(nullptr, "选择文件", QDir::homePath(), "图片文件 (*.png *.jpg);;所有文件 (*.*)");if (!fileName.isEmpty()) {qDebug() << "选中的文件:" << fileName;
}

参数说明:

  • nullptr 代表父窗口,如果是 this,则表示当前窗口为父窗口。
  • “选择文件” 是对话框的标题。
  • QDir::homePath() 设置默认路径(这里是用户的主目录)。
  • “图片文件 (.png .jpg);;所有文件 (.)” 是过滤器,用于限制可选文件类型。

2. 获取打开的多个文件名

QStringList fileNames = QFileDialog::getOpenFileNames(nullptr, "选择多个文件", QDir::homePath(), "文本文件 (*.txt);;所有文件 (*.*)");for (const QString &file : fileNames) {qDebug() << "选中的文件:" << file;
}

返回的是 QStringList,可以遍历获取多个文件路径。

3. 获取保存的文件名

QString fileName = QFileDialog::getSaveFileName(nullptr, "保存文件", QDir::homePath() + "/untitled.txt", "文本文件 (*.txt);;所有文件 (*.*)");if (!fileName.isEmpty()) {QFile file(fileName);if (file.open(QIODevice::WriteOnly)) {QTextStream out(&file);out << "Hello, QFileDialog!";file.close();}
}

如果用户选择了文件,则 getSaveFileName() 返回完整路径,程序可以基于此保存内容。

4.选择目录

QString dir = QFileDialog::getExistingDirectory(nullptr, "选择文件夹", QDir::homePath());if (!dir.isEmpty()) {qDebug() << "选中的文件夹:" << dir;
}

这个方法专门用于选择目录,而不是具体的文件。

三、完整示例

MainWindow::MainWindow(QWidget *parent): QWidget(parent)
{setWindowTitle("QFileDialog类(文件对话框测试)");// 创建控件m_pFileNameLabel = new QLabel("文件名称:", this);m_pFileNameLineEdit = new QLineEdit(this);m_pFileButton = new QPushButton("选择...");m_pFileSizeLabel = new QLabel("文件大小:", this);m_pFileSizeLineEdit = new QLineEdit(this);m_pGetFileButton = new QPushButton("获取文件大小信息", this);// 排列布局QGridLayout *gLayout = new QGridLayout(this);gLayout->addWidget(m_pFileNameLabel, 0, 0);gLayout->addWidget(m_pFileNameLineEdit, 0 ,1);gLayout->addWidget(m_pFileButton, 0, 2);gLayout->addWidget(m_pFileSizeLabel, 1, 0);gLayout->addWidget(m_pFileSizeLineEdit, 1, 1, 1, 2);gLayout->addWidget(m_pGetFileButton, 2, 0, 1, 3);this->setLayout(gLayout);connect(m_pFileButton, &QPushButton::clicked, this, &MainWindow::GetFileInfoFunc);connect(m_pGetFileButton, &QPushButton::clicked, this, &MainWindow::GetFileSizeFunc);
}void MainWindow::GetFileInfoFunc()
{QString fileName = QFileDialog::getOpenFileName(nullptr,"选择文件",QDir::homePath(),"图片文件 (*.png *.jpg);;所有文件 (*.*)");m_pFileNameLineEdit->setText(fileName);
}void MainWindow::GetFileSizeFunc()
{QString strFileName = m_pFileNameLineEdit->text();QFileInfo fileInfo(strFileName);qint64 fileSize = fileInfo.size();m_pFileSizeLineEdit->setText(QString::number(fileSize));
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com