QT5 创建“打开文件”按钮

在GUI界面设计中,有时需要“打开文件”按钮,以加载外部文件,则需要我们用QFileDialog的静态函数完成,QT5中几个文件相关函数如下:

函数名作用
getOpenFileName加载用户选择文件的文件名
getSaveFileName加载用户保存文件的文件名
getExistingDirectory加载用户选择目录名
getOpenFileNames加载用户选择文件的文件名列表

getOpenFileName的构造函数:

QString QFileDialog::getOpenFileName (
          QWidget * parent = 0,
          const QString & caption = QString(),
          const QString & dir = QString(),
          const QString & filter = QString(),
          QString * selectedFilter = 0,
          Options options = 0 )

第一个参数parent,用于定义父对象。

第二个参数caption,对话框的标题,可设定为“打开文件”、“选择一个目标文件”等自定义标题;

第三个参数dir,对话框显示时默认打开的目录,”.” 代表程序运行目录,”/” 代表当前盘符的根目录,可更改为例如e:/qt/5.5指定路径。

第四个参数filter,对话框的后缀名过滤器,”Files(*.doc *.xls)“就让它只能显示后缀名是doc或者xls的文件,后缀之间用空格隔开。如果需要使用多个过滤器,使用”::”分割。

第五个参数selectedFilter,默认选择的过滤器;

第六个参数options,选择显示格式,默认目录和文件名同时显示。

最终效果如下:
点击打开文件按钮,弹出常规文件选择对话框,选择打开文件,并且显示在文本框中。
《QT5 创建“打开文件”按钮》
具体步骤如下:
1、在.h文件中添加声明头文件;

#include <QLineEdit>
#include <QGridLayout>

2、添加控件声明;

private:
    QPushButton *fileBtn;
    QLineEdit *fileLineEdit;
    QGridLayout *mainLayout;

3、添加自定义函数声明,用于接收按钮按下后打开文件的信号;

private slots:
    void showFile();

4、在.cpp中添加声明头文件;

#include<QGridLayout>
#include<QFileDialog>
#include<QPushButton>

5、添加常规按钮、文本框控件初始化执行代码;

	   fileBtn=new QPushButton;                   	
	   fileBtn->setText(tr("打开文件..."));
	   fileLineEdit=new QLineEdit;               
	   mainLayout=new QGridLayout(this);         
	   mainLayout->addWidget(fileBtn,0,1);
	   mainLayout->addWidget(fileLineEdit,0,0);
	   connect(fileBtn,SIGNAL(clicked()),this,SLOT(showFile()));    //按钮按下后信号发出执行操作

6、添加按钮按下后的信号函数showFile();

void Dialog::showFile()
{
    QString s = QFileDialog::getOpenFileName(this,"选择文件","/", "Files(*.doc *xls)");
    fileLineEdit->setText(s);						//将打开文件的文件名显示在文本框中
}
    原文作者:艾晓初
    原文地址: https://blog.csdn.net/iXiaochu/article/details/97162077
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞