Qt使用的幾個問題

本文要講三個問題:

1. QFileDialog去掉默認按鈕

2. redhat6 QMainWindow的所有menu的action不顯示圖標

3. linux下QComboBox彈出來的長度佔滿電腦屏幕高度

這三個問題都是Qt Linux與windows顯示風格不同的問題,雖然解決辦法都很簡單,但網上解答並不多,不知道之前答案並不好找,寫下來,希望有用。


一、QFileDialog去掉默認的Open/Save、Cancel按鈕

    有人採用創建一個QWidget來遮住Open、Cancel按鈕的辦法,我一直不大讚成這種剛好達到目的而沒有正確保障的做法,這種做法在windows下可以,在Linux下無論如何遮不完全,有Open、Cancel的部分按鈕露了出來。

    原來QFileDialog這種固件,還是可以被拆的,真是拆除了腦洞限制呀。舉一反三,以後對Qt中的其它類也不會客氣啦。

QDialogButtonBox* box = _filedialog->findChild<QDialogButtonBox *>();
if(box)
{
	box->clear();
}


二、QMainWindow的所有menu的action項的圖標未顯示

    windows和redhat5下可以顯示,唯有redhat6下不顯示,幫助文檔上有時會交待哪些版本之間不一致,但這個問題官方文檔也沒有說,有些問題註定可以解決卻沒有原始說明。

action->setIconVisibleMenu(true);

    網上發現很多人有問這個問題,但是卻幾乎沒什麼回答,還被傳得難到無解的程度,在這兒替最先回答這個問題的人傳播一下,畢竟我找了好久。


三、QComboBox在Linux下顯示時佔滿屏幕高度

wKioL1bSnDfxWl02AABZm0gwi2Y655.jpg


comboBox->setStyleSheet("QComboBox {combobox-popup:0;}")

設置之後恢復正常如圖(windows下不用設也正常):


wKioL1bSnDjx3d-VAACmrRQ6Yhs688.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章