Qt5开发从入门到精通——第四篇一节(基本对话框——打开文件getOpenFileName())

欢迎小伙伴的点评✨✨,相互学习、互关必回、全天在线🍳🍳🍳
博主🧑🧑 本着开源的精神交流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()静态函数类打开文件也是在应用程序中经常用到的

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东.'

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值