使用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...