補一下這部分的筆記 簡單的東西也記一下
操作系統一般都會提供一些列的標準對話框,如文件選擇、字體選擇、顏色選擇等,這些標準對話框爲應用層序提供了一致的觀感。Qt對這些標準對話框都定義了相關的類,如:QFileDialog、QFontDialog、QColorDialog、QInputDialog、QMessageBox、QPrintDialog、QErrorMessage、QProgressDialog等
QFileDialog
QFileDialog類是用於打開和保存文件的標準對話框。 QFileDialog類繼承QDialog類;
QFileDialog在打開文件時使用了文本過濾器,用於顯示指定擴展名的文件。也可以設置使用QFileDialog打開文件時的起始目錄和指定擴展名的文件。
使用QFileDialog有兩種方法,一種是比較簡單的使用“靜態函數法”,另一種是可以自定義各個細節的“構造函數法”
官網手冊:
QString getExistingDirectory(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), Options options = ShowDirsOnly) QUrl getExistingDirectoryUrl(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), Options options = ShowDirsOnly, const QStringList & supportedSchemes = QStringList()) QString getOpenFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0) QStringList getOpenFileNames(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0) QUrl getOpenFileUrl(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0, const QStringList & supportedSchemes = QStringList()) QList<QUrl> getOpenFileUrls(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0, const QStringList & supportedSchemes = QStringList()) QString getSaveFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0) QUrl getSaveFileUrl(QWidget * parent = 0, const QString & caption = QString(), const QUrl & dir = QUrl(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0, const QStringList & supportedSchemes = QStringList())
函數:
getOpenFileName
比如這裏我在triggered()中使用getOpenFileName
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTextCodec>
#include <QFileDialog>
#include <QString>
#include <QDebug>
#include <QByteArray>
#include <string.h>
#define cout qDebug()
void MainWindow::on_actiondakai_2_triggered() { QString fileName = QFileDialog::getOpenFileName(); cout<<"====="<<fileName<<"========"; }
getExistingDirectory
void MainWindow::on_actiondakai_2_triggered() { // QString fileName = QFileDialog::getOpenFileName(); QString fileName = QFileDialog::getExistingDirectory(NULL,"caption","."); cout<<"====="<<fileName<<"========"; }
其他方法 大同小異不再敘述。
getExistingDirectoryUrl
和getExistingDirectory類似,功能也是獲取文件夾路徑,最大的區別在於參數裏的路徑是QUrl類型,這爲用戶提供了選擇遠程目錄的能力。
getOpenFileUrl
獲取遠程文件
爲用戶提供了獲取遠程文件路徑的能力
getOpenFileUrls
獲取多個遠程文件
可以得到多個遠程文件路徑
getOpenFileNames
獲取多個本地文件
getSaveFileName
保存本地文件對話框
getSaveFileUrl
保存遠程文件對話框
除了靜態函數 還可以利於構造函數自定義打開文件的細節
構造一個QFileDialog對象:
QFileDialog fd;
設置是打開還是保存文件對話框 AcceptMode
fd.setAcceptMode(QFileDialog::AcceptOpen);//文件對話框爲打開類型 fd.setAcceptMode(QFileDialog::AcceptSave);//文件對話框爲保存類型
設置對話框顯示信息的詳細程度
fd.setViewMode(QFileDialog::Detail);//詳細 fd.setViewMode(QFileDialog::List);//僅列表
設置對話框返回
fd.setFileMode(QFileDialog::AnyFile);//文件名,無論是否存在 fd.setFileMode(QFileDialog::ExistingFile);//存在的,單個文件名 fd.setFileMode(QFileDialog::Directory);//文件夾名 fd.setFileMode(QFileDialog::ExistingFiles);//多文件
設置標題
fd.setWindowTitle("標題");
設置默認後綴
fd.setDefaultSuffix("txt");
獲取對話框中的目錄地址
QDir dir = fd.directory();qDebug() << dir;
返回文件圖標提供者
QFileIconProvider * QFileDialog::iconProvider() const
設置歷史目錄setHistory
QStringList dirLIst; dirLIst << "C:\\Intel" ;//添加了個路徑 fileDlg->setHistory(dirLIst);