首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Qt 標準文件對話框實戰:從代碼結構到界面效果完整指南

     編輯:關於C語言

項目概覽

本文展示一個完整的 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 詳解

API說明
QFileDialog::getOpenFileName()靜態方法,彈開文件選擇對話框,返回選中文件路徑
參數1 this父窗口指針,對話框居中於父窗口
參數2 "open file dialog"對話框標題
參數3 "/"初始目錄(根目錄)
參數4 tr("Program Files (*.cpp *.c *.h)")文件過濾器,僅顯示指定擴展名

三、運行效果展示

主界面

文件對話框

選中文件後

四、擴展建議

  1. 多文件選擇:使用 getOpenFileNames() 返回 QStringList
  2. 保存文件對話框:使用 getSaveFileName()
  3. 目錄選擇:使用 getExistingDirectory()
  4. 自定義過濾器:多組過濾器用 ;; 分隔,如 "Images (*.png *.jpg);;Text (*.txt)"
  5. 非模態對話框:實例化 QFileDialog 對象調用 exec() 或 show()

本文整理自「大白菜」博客,原文地址:https://zhengyongkun.blog.51cto.com/1163218/1296498

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved