2017-01-11 32 views
2

我正在處理一個軟件,其中包含大量項目的組合框,問題是當我點擊它時,列表太大,我無法通過滾動查看所有項目。qt將最大高度設置爲下拉式組合框(樣式cleanlooks)

風格cleanlooks被使用(這就是爲什麼組合框具有太大的尺寸),但我不能改變它,所以我正在尋找一個解決方案來設置最大尺寸。

我在網上找不到任何關於此事的信息,無論是在文檔中。

我試圖使用大小策略,但不起作用。我還嘗試獲取組合框使用的QLineEdit,並在其上設置QSize,最後通過在組合框和QLineEdit上設置樣式表,但沒有任何工作正常。

我試圖與QSIZE和樣式表:

sz = QSize(20, 20) 
combo.view().setGridSize(sz) 

combo.view().setStyleSheet("""QListView { max-height: 50px; background-color: yellow; } """) 
combo.setStyleSheet("""QComboBox { max-height: 30px; background-color: pink; } """) 

編輯:@Vladimir Bershov的評論後,我想正確設置大小搭配:setMaxVisibleItems(),但如說,在文檔(」注意:對於QStyle :: SH_ComboBox_Popup返回true的樣式中的不可編輯組合框,該屬性將被忽略),該屬性將被忽略。

所以我尋找修改QStyle提示來取消設置SH_ComboBox_Popup,但正如這個post所解釋的,這是不可能的。

如果您有任何建議,我正在傾聽。

謝謝。

+0

看起來你需要['setMaxCount()'](http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxCount)或['setMaxVisibleItems()'](http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxVisibleItems) –

+1

我試過這個,但是被忽略了,我在doc中看到了這個:「注意:這個屬性對於QStyle :: SH_ComboBox_Popup(例如Mac樣式或Gtk +樣式)返回true的樣式中的不可編輯組合框被忽略。「這可以解釋爲什麼。我試過把combobox設置爲Editable之前,它的作品,所以我正在尋找這種方式 – pipou

+1

@ pipou。 「QProxyStyle」類現在可在PyQt5中使用。我用Cleanlooks風格試過,並且重寫了'SH_ComboBox_Popup'的風格提示。在PyQt4中沒有辦法解決這個問題。 – ekhumoro

回答

1

解釋一樣在評論中有PyQt4中沒有可用的解決方案