定制一个文件对话框:
效果展示:
点击文件标准对话框实例:
显示所选文件的路径:
代码展示:
//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>
<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()函数。