Я пытаюсь установить QComboBox
, чтобы иметь расширяющуюся высоту, но корректируя длину содержимого.QComboBox AdjustToContents изменение высоты
Комбо создается следующим образом:
self.dataentrycombo = QComboBox()
self.dataentrycombo.setIconSize(QSize(48,48))
self.dataentrycombo.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
self.dataentrycombo.setSizeAdjustPolicy(QComboBox.AdjustToContents)
self.dataentrycombo.setModel(self.dataentrymodel)
После того как я заселить мою модель, размер Настраивает, но высота меньше, чем на панели инструментов, что выпадающий живет в:
Если я изменю свой размер главного окна, то он полностью расширится:
Я попытался с помощью QComboBox.AdjustToMinimumContentsLengthWithIcon
, но тогда он просто выглядит следующим образом:
Мои модели элементов создаются следующим образом:
item = QStandardItem(QIcon(form.icon), form.icontext)
item.setData(form, Qt.UserRole + 1)
self.dataentrymodel.appendRow(item)
Дополнительная информация:
- Qt: 4.7
- Окно с 7 и 8
Я воспроизвел ваш пример так близко, как только мог, но я не могу воспроизвести это поведение. Для меня достаточно установить политику размера, чтобы увеличить высоту (в противном случае комбинация будет вертикально вертикально на панели инструментов). Поэтому я считаю, что более полным является пример, необходимый (если не существует какой-либо проблемы с версией или платформой). – ekhumoro
@Nathan W, я столкнулся с той же проблемой несколько месяцев назад, пытаясь ее исправить, и наконец нашел решение, которое устранило проблему. Я просто назовет 'adjustSize()' виджета, который не расширялся. после установки * model * вызвать 'adjustSize()' на 'QComboBox'. Я думаю, что это должно решить вашу проблему. Если это не сработает для вас, попробуйте вызвать тот же метод в виджетах, после чего он содержит 'combobox' – qurban
, и если он не работает, измените его размер на текущий размер. 'self.resize (self.size())' (это взломать, чтобы настроить дочерние элементы окна) – qurban