2017-01-11 4 views
2

Я работаю над программным обеспечением, которое содержит combobox с множеством элементов внутри, проблема в том, что когда я нажимаю на него, список слишком велик, и я не могу просмотреть все элементы, прокручивая их.qt установить максимальную высоту для выпадающего списка combobox (стиль cleanlooks)

Используется стиль cleanlooks (поэтому combobox имеет слишком большой размер), но я не могу его изменить, поэтому я ищу решение для установки максимального размера.

Об этом я не нашел в Интернете, ни в документации.

Я попытался использовать политику размера, но не работает. Я также попытался получить QLineEdit, используемый combobox, и установить QSize на нем и, наконец, установить таблицу стилей в combobox и 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; } """) 

EDIT: После комментария @Vladimir Бершовой Я попытался правильно установить размер с: setMaxVisibleItems(), но, как сказано в документе (» Примечание. Это свойство игнорируется для не редактируемых comboboxes в стилях, которые возвращают true для QStyle :: SH_ComboBox_Popup "), свойство игнорируется.

Так что я искал изменения подсказки 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

Я пробовал это, но это игнорируется, я видел это в документе: «Примечание: это свойство игнорируется для не редактируемых comboboxes в стилях, которые возвращают true для QStyle :: SH_ComboBox_Popup, такого как стиль Mac или стиль Gtk +. " что может объяснить, почему. Я попытался, установив combobox в Editable before, и он работает, поэтому я смотрю так – pipou

+1

@pipou. Класс QProxyStyle теперь доступен в PyQt5. Я попробовал его с стилем «Очистить», и переопределение стиля-подсказки для 'SH_ComboBox_Popup' работает. Невозможно исправить эту проблему в PyQt4. – ekhumoro

ответ

1

Как объяснено в комментариях нет никаких доступных решений в PyQt4

Смежные вопросы