【Qt】标准文件对话框

定制一个文件对话框:

效果展示:



点击文件标准对话框实例:

【Qt】标准文件对话框_第1张图片


显示所选文件的路径:




代码展示:

//main.cpp

<span style="font-family:Microsoft YaHei;font-size:18px;">#include "dialog.h"
#include <QApplication>
#include <QTextCodec>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());
    w.show();

    return a.exec();
}
</span>

//dialog.h

<span style="font-family:Microsoft YaHei;font-size:18px;">#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include<QLineEdit>
#include<QGridLayout>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();

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

private slots:
    void showFile();

};

#endif // DIALOG_H</span>


//dialog.cpp

<span style="font-family:Microsoft YaHei;font-size:18px;">#include "dialog.h"
#include <QColorDialog>
#include<QGridLayout>
#include<QFileDialog>
#include<QPushButton>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    setWindowTitle(tr("各种标准对话框的实例"));
    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()));//事件关联
}

void Dialog::showFile()
{
    QString s = QFileDialog::getOpenFileName(this,"open file dialog","/",                                 "C++ files(*.cpp)::C files(*.c)::Head files(*.h)");
    fileLineEdit->setText(s);
}

Dialog::~Dialog()
{

}
</span>

需要注意的一个问题是:main.cpp中

<span style="font-family:Microsoft YaHei;font-size:18px;">  QTextCodec::setCodecForLocale(QTextCodec::codecForLocale());</span>

和书上教程不一样因为setCodecFotTr()已经被淘汰,详情可参看:http://blog.csdn.net/dbzhang800/article/details/7325698

另外这个实例中最重要的部分是showFile()函数。


你可能感兴趣的:(qt)