我正在處理一個軟件,其中包含大量項目的組合框,問題是當我點擊它時,列表太大,我無法通過滾動查看所有項目。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所解釋的,這是不可能的。
如果您有任何建議,我正在傾聽。
謝謝。
看起來你需要['setMaxCount()'](http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxCount)或['setMaxVisibleItems()'](http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxVisibleItems) –
我試過這個,但是被忽略了,我在doc中看到了這個:「注意:這個屬性對於QStyle :: SH_ComboBox_Popup(例如Mac樣式或Gtk +樣式)返回true的樣式中的不可編輯組合框被忽略。「這可以解釋爲什麼。我試過把combobox設置爲Editable之前,它的作品,所以我正在尋找這種方式 – pipou
@ pipou。 「QProxyStyle」類現在可在PyQt5中使用。我用Cleanlooks風格試過,並且重寫了'SH_ComboBox_Popup'的風格提示。在PyQt4中沒有辦法解決這個問題。 – ekhumoro