1. 程式人生 > >跟我一起學QT_QT標準對話方塊_檔案對話方塊

跟我一起學QT_QT標準對話方塊_檔案對話方塊

標準對話方塊

QT的標準對話方塊分為以下幾種

  1. 顏色對話方塊
  2. 檔案對話方塊
  3. 字型對話方塊
  4. 輸入對話方塊
  5. 訊息對話方塊
  6. 進度對話方塊
  7. 錯誤資訊對話方塊
  8. 嚮導對話方塊

    檔案對話方塊

    QT中的檔案對話方塊QFileDialog類提供一個允許使用者選擇檔案或者資料夾的對話方塊。我們繼續在上一篇跟我一起學QT_QT標準對話方塊_顏色選擇框的基礎上繼續修改

    首先我們在UI設計器上再新增一個QpushButton按鈕,然後為這個按鈕的clicked 訊號建立對應的槽函式。
    定義槽函式

    mydialog.cpp 中新增 #include <QFileDialog>標頭檔案,然後實現槽函式
    這裡我們先使用QFileDialog
    類中的靜態函式getOpenFileName這個靜態函式的原型如下:
[static] QString QFileDialog::getOpenFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options())



這個函式的大致用途就是它返回使用者選擇的現有檔案。如果使用者按下Cancel,它將返回一個空字串。

下面對這個函式的幾個引數簡單介紹下

parent

如果parent 不等於null 則對話方塊顯示在 parent 的中間

caption 對話方塊的標題

dir 對話方塊初始選擇的根目錄

filter 過濾器使用';;'分割示例如下

"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

下面我們來實現下程式碼如下

  1. 在建構函式中用connect連線檔案對話方塊按鈕的訊號和槽函式
//檔案對話方塊訊號槽連線
    connect(ui->fliedlg,&QPushButton::clicked,this,&MyDialog::file_slots_func);
  1. 實現file_slots_func的槽函式
void MyDialog::file_slots_func()
{
    QString fileName = QFileDialog::getOpenFileName(this,"檔案選擇對話方塊","D:\\","All File (*.*);;Image (*.png *.jpg *.bmp)");
    qDebug()<<"select color FileName:"<<fileName<<endl;
}

CTRL+b編譯 CTRL+r 執行執行結果如圖:

執行結果



檔案對話方塊的簡單使用就先介紹到這裡