關於Qt的QFileDialog的使用問題

2021-07-07 08:37:22 字數 1590 閱讀 3737

使用qt編寫介面的時候,必然會使用qfiledialog來讀取各種各樣的檔案。

所以qfiledialog的使用方法就必須了解。

一、獲取某乙個檔案的路徑 

qstring qfiledialog::getopenfilename(qwidget * parent = 0, const qstring & caption = qstring(), const qstring & dir = qstring(), const qstring & filter = qstring(), qstring * selectedfilter = 0, options options = 0);
引數一:父視窗指標
引數二:視窗名字
引數三:預設路徑
引數四:篩選標籤名
引數五:篩選標籤
引數六:~~我也不知道,預設即可。

示例如下:

qstring filename = qfiledialog::getopenfilename(this, tr("open file"),"/home",tr("images (*.png *.xpm *.jpg)"));

二、獲取某乙個資料夾的路徑
qstring qfiledialog::getexistingdirectory(qwidget * parent = 0, const qstring & caption = qstring(), const qstring & dir = qstring(), options options = showdirsonly)
引數說明參考上乙個,類似。

示例如下:

qstring dir = qfiledialog::getexistingdirectory(this, tr("open directory"),

"/home",

qfiledialog::showdirsonly

| qfiledialog::dontresolvesymlinks);

三、視窗中文名稱
上述兩個函式中,設定視窗中文為中文很容易出現亂碼。參考
解放方案如下:
用記事本開啟你的源**,然後點另存為,utf-8,編碼覆蓋,這時中文就沒問題了但是會亂碼。

在字串前加個巨集qstringliteral把字串擴起來;這樣字串就不會亂碼了。

四、從路徑字串中獲取父路徑和檔名

參考

示例**如下:

qstring file_full, file_name, file_path;

qfileinfo fi;

file_full = qfiledialog::getopenfilename(this);

fi = qfileinfo(file_full);

file_name = fi.filename();

file_path = fi.absolutepath();

關於QT事件

qt提供了5個級別的事件處理和事件過濾方法。1.重新實現像mousepressevent 這樣的事件處理器。這事最常用的。4.重新實現qobject event 可以再這些事件到達特定的事件處理器之前處理他們。當重新實現event 時,必須對那些沒有明確處理的情況呼叫其基類的event 函式。5.在...

QT 關於除錯

斷點是人為設定的,意思就是讓程式執行到此 停住 不再往下執行,然後主動權就交給除錯者了,此時你可以做除錯軟體支援的任何事情 那要看除錯軟體的能夠提供的功能了,例如檢視 修改 單步跳過 設定下乙個斷點以及斷點次數和條件斷點設定等等 單步跳入 是指執行該行 的同時,進入該行 進入函式 檢視該 如何執行,...

Qt關於顏色的雜談

一般的屬於qwidget子類的一些控制項,可以直接使用樣式表,例如 label setstylesheet color white qpalette類相當於對話方塊或是控制項的調色盤,它管理著控制項或窗體的所有顏色資訊,每個窗體或控制項都包含乙個qpalette物件,在顯示時按照它的qpalette...