打开文件对话框和选择文件对话框
1. 打开文件
- 简单用法,直接调用静态方法
QString fileName = QFileDialog::getOpenFileName(this);
if (!fileName.isEmpty())
{
// todo
}
- 进阶用法1,可设置默认过滤器
QString strDir = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); // 文件夹路径,另外"."是运行目录,"/" 是当前盘符的根目录
QString strFilter = "JPEG Files(*.jpg);;PNG Files(*.png);;All Files(*.*)"; // 使用;;分隔
QString selectedFilter = strFilter.split(";;")[1]; // 默认的过滤器,返回会更新为最终选择的过滤器,此处是PNG Files(*.png)
QString fileName = QFileDialog::getOpenFileName(this, "打开文件", strDir, strFilter, &selectedFilter);
if (fileName.isEmpty())
{
return;
}
if (selectedFilter == "JPEG Files(*.jpg)")
{
qDebug() << selectedFilter;
}
else if (selectedFilter == "PNG Files(*.png)")
{
qDebug() << selectedFilter;
}
- 进阶用法2,创建类对象
QFileDialog openFilePath(this);
openFilePath.setWindowTitle(tr("请选择文件"));
openFilePath.setDirectory(".");
openFilePath.setNameFilter("JPEG Files(*.jpg);;PNG Files(*.png);;All Files(*.*)");
if(openFilePath.exec() == QDialog::Accepted)
{
//todo
}
2.打开多个文件
QStringList files = QFileDialog::getOpenFileNames(this);
if (!files .isEmpty())
{
// todo
}
3.选择文件夹
QFileDialog openFilePath(this, "选择文件夹", "file");
openFilePath.setFileMode(QFileDialog::DirectoryOnly);
if(openFilePath.exec() == QDialog::Accepted)
{
// todo
}
4.保存文件
QString fileName = QFileDialog::getSaveFileName(this);
if (!fileName.isEmpty())
{
// todo
}
浙公网安备 33010602011771号