Текст элемента QComboBox усечен в Windows

У меня есть стандартный QComboBox, использующий PySide с довольно длинными именами элементов, которые по какой-то причине усекаются в Windows, но не в Ubuntu (Gnome). Я установил его только с помощью:

self.ConfChoose = QtGui.QComboBox()
self.ConfChoose.addItem('blablablabla')

и т.д. Никаких дополнительных настроек политики.

Снимок экрана Windows

Снимок экрана Ubuntu

Любые идеи относительно того, почему и как я могу сделать так, чтобы элементы не усекались? Я могу установить размер QComboBox равным размеру самой длинной текстовой строки, но это не решение. Он должен вести себя как в Ubuntu.


person Termo    schedule 24.08.2016    source источник
comment
Он не должен вести себя как в Ubuntu, потому что стиль Windows действует так же, как и собственные элементы управления Windows. Вероятно, вы можете изменить это поведение, но все это исходит из системы стилей. Это никак не связано с размером самого виджета.   -  person Kuba hasn't forgotten Monica    schedule 24.08.2016
comment
Вы можете создать собственное представление списка и использовать QComboBox::setView, чтобы настроить его на ваше поле со списком. Или вы можете изменить существующее представление списка, используя QComboBox::view, чтобы получить Посмотреть список.   -  person thuga    schedule 25.08.2016
comment
Спасибо вам обоим за указания. Да, по-видимому, это что-то родное для представления Windows (простой тест в Qt Deigner с предварительным просмотром в Gtk и Windows показывает такое же поведение). QComboBox.view() имеет много вещей, и я не уверен, где установлено это правило размера меню. Любая помощь, на какую собственность я должен смотреть?   -  person Termo    schedule 25.08.2016


Ответы (1)


Наконец получил решение, которое я могу принять:

self.ConfChoose = QtGui.QComboBox()
[self.ConfChoose.addItem(name) for name in self.listOfStrings]
w=self.ConfChoose.fontMetrics().boundingRect(max(self.listOfStrings, key=len)).width()
self.ConfChoose.view().setFixedWidth(w+10)

Спасибо за вклад, чтобы двигаться в правильном направлении...

person Termo    schedule 25.08.2016