Я пытаюсь сделать QTreeView
автоматически изменяя размер его содержимого. Это моя настройка: я пытаюсь создать «умный» наконечник инструмента, который является QWidget
с Qt.Tool | Qt.FramelessWindowHint
как его WindowFlags
, который работает красиво. Он содержит макет с некоторыми кнопками (размер которых постоянный) и QTreeView
. Теперь, когда строки добавляются к модели QTreeView
, QTreeView
должен автоматически увеличивать свой размер, чтобы избежать вертикальных полос прокрутки.Сделать QTreeView автоматически изменением размера до содержания
Установка QSizePolicy.Expanding
на обоих виджетах инструмента и QTreeView
ничего не изменила - возможно, у меня отсутствует какой-то дополнительный флаг или что-то в этом роде.
Я также попытался следующий, перебором метод:
class ToolTip:
def __init__(self):
...
self.itemView.setVerticalScrollMode(QAbstractItemView.ScrollPerPixel)
self.itemView.verticalScrollBar().rangeChanged.connect(self.resizeViewVertically)
def resizeViewVertically(self, min, max):
self.resize(self.width(), self.height() + max)
, который работает большую часть времени, но не всегда. Каждый раз в то время (каждый второй раз, если быть точным, но я не знаю, совпаден ли это или нет), используя этот код, представление меняет правильные размеры (т. Е. Все содержимое подходит, и не было бы необходимости в полоса прокрутки), но полоса прокрутки не исчезает, позволяя прокручиваться в пустое пространство под последней строкой.