本文展示一個完整的 Qt 文件打開對話框實例,包含頭文件定義、源文件實現、信號槽連接以及最終運行效果截圖,適合 Qt 初學者快速上手標準對話框用法。
dialog.h#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QLineEdit>
#include <QGridLayout>
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
private:
QPushButton *fileBtn;
QLineEdit *fileLineEdit;
QGridLayout *mainLayout;
private slots:
void showFile();
};
#endif // DIALOG_H
QDialog 作為主窗口基類Q_OBJECT 宏啟用元對象系統(信號槽機制)QGridLayout 實現網格式排版showFile() 響應按鈕點擊事件dialog.cpp#include "dialog.h"
#include <QGridLayout>
#include <QFileDialog>
#include <QPushButton>
Dialog::Dialog(QWidget *parent) : QDialog(parent)
{
setWindowTitle(tr("Every Standard Dialog Instance"));
fileBtn = new QPushButton;
fileBtn->setText(tr("File Standard Dialog Instance"));
fileLineEdit = new QLineEdit;
mainLayout = new QGridLayout(this);
mainLayout->addWidget(fileBtn, 0, 0); // 第0行第0列
mainLayout->addWidget(fileLineEdit, 0, 1); // 第0行第1列
connect(fileBtn, SIGNAL(clicked()), this, SLOT(showFile()));
}
void Dialog::showFile()
{
QString s = QFileDialog::getOpenFileName(
this,
"open file dialog",
"/",
tr("Program Files (*.cpp *.c *.h)")
);
fileLineEdit->setText(s);
}
Dialog::~Dialog() { }
| API | 說明 |
|---|---|
QFileDialog::getOpenFileName() | 靜態方法,彈開文件選擇對話框,返回選中文件路徑 |
參數1 this | 父窗口指針,對話框居中於父窗口 |
參數2 "open file dialog" | 對話框標題 |
參數3 "/" | 初始目錄(根目錄) |
參數4 tr("Program Files (*.cpp *.c *.h)") | 文件過濾器,僅顯示指定擴展名 |



getOpenFileNames() 返回 QStringListgetSaveFileName()getExistingDirectory();; 分隔,如 "Images (*.png *.jpg);;Text (*.txt)"QFileDialog 對象調用 exec() 或 show()本文整理自「大白菜」博客,原文地址:https://zhengyongkun.blog.51cto.com/1163218/1296498