欢迎小伙伴的点评✨✨,相互学习、互关必回、全天在线🍳🍳🍳
博主🧑🧑 本着开源的精神交流Qt开发的经验、将持续更新续章,为社区贡献博主自身的开源精神👩🚀
前言
本章节将会给大家带来标准对话框(QFile Dialog)类的详细使用方法
一、标准文件对话框类
1.1、getOpenFileName()静态函数详解
getOpenFileName()静态函数返回用户选择的文件名,但是当用户择文件时,若选择“取消”(Cancel),则返回一个空串。
其函数形式如下:
QString QFileDialog::getOpenFileName
(
QWidget * parent=O, / /标准文件对话框的父窗口
const QString & caption=QString(), //标准文件对话框的标题名
const QString & dir=QString(), //注 (1)
const QString & filter=QString (), //注 (2)
QString * selectedFilter=O, //用户选择的过滤器通过此参数返回
Options options=O //选择显示文件名的格式,默认是同时显示目录与文件名
)
注:
( l) 指定了默认的目录,若此参数带有文件名,则文件将是默认选中的文件。
(2) 此参数对文件类型进行过滤,只有与过滤器匹配的文件类型才显示,可以同时指定多种过滤方式供用
户选择,多种过滤器之间用";;"隔开。
1.2、实例原码详解
dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QLineEdit>
#include <QGridLayout>
#include <QPushButton>
#include <QFileDialog>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = nullptr);
~Dialog();
private:
Ui::Dialog *ui;
QPushButton *fileBtn; //声明一个按钮的指针类
QLineEdit *fileLineEdit; // 声明一个文本指针类
QGridLayout *mainLayout; // 声明一个画控件位置指针类
private slots:
void showFile(); //声明一个只能自己连接自己信号的函数
};
#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
fileBtn = new QPushButton; //各个控件对象的初始化
fileBtn->setText(tr("文件标准对话框实例")); //
fileLineEdit = new QLineEdit; //用来显示选择的文件名
//添加布局管理:
mainLayout = new QGridLayout(this);
mainLayout->addWidget(fileBtn,0,0);
mainLayout->addWidget(fileLineEdit,0,1);
connect(fileBtn,SIGNAL(clicked()),this,SLOT(showFile())); //事件关联
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::showFile()
{
QString s = QFileDialog::getOpenFileName(this,"open file dialog","D:\\text_C","c++ files(*.cpp);;c files(*.c);;Head files(*.h)");
fileLineEdit->setText(s);
}
main.cpp
#include "dialog.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show();
return a.exec();
}
二、实例效果图
三、总结
getOpenFileName()静态函数类打开文件也是在应用程序中经常用到的