Я работаю над программным обеспечением, которое содержит 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, это невозможно.
Если у вас есть предложения, которые я слушаю.
Спасибо.
Похоже, вам нужен [ 'setMaxCount()'] (http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxCount) или ['setMaxVisibleItems()'] (http://pyqt.sourceforge.net/Docs/PyQt4/qcombobox.html#setMaxVisibleItems) –
Я пробовал это, но это игнорируется, я видел это в документе: «Примечание: это свойство игнорируется для не редактируемых comboboxes в стилях, которые возвращают true для QStyle :: SH_ComboBox_Popup, такого как стиль Mac или стиль Gtk +. " что может объяснить, почему. Я попытался, установив combobox в Editable before, и он работает, поэтому я смотрю так – pipou
@pipou. Класс QProxyStyle теперь доступен в PyQt5. Я попробовал его с стилем «Очистить», и переопределение стиля-подсказки для 'SH_ComboBox_Popup' работает. Невозможно исправить эту проблему в PyQt4. – ekhumoro