2013-02-24 4 views
5

Я пытаюсь сделать 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) 

, который работает большую часть времени, но не всегда. Каждый раз в то время (каждый второй раз, если быть точным, но я не знаю, совпаден ли это или нет), используя этот код, представление меняет правильные размеры (т. Е. Все содержимое подходит, и не было бы необходимости в полоса прокрутки), но полоса прокрутки не исчезает, позволяя прокручиваться в пустое пространство под последней строкой.

ответ

0

Вы можете ссылаться, как работает этот пункт: http://ftp.ics.uci.edu/pub/centos0/ics-custom-build/BUILD/PyQt-x11-gpl-4.7.2/examples/layouts/flowlayout.py

Может дать вам некоторые намеки на то, что вам нужно. Его макет, который вы можете зайти в окно прокрутки для isntance, и когда основное окно будет разобрано, оно будет переупорядочивать все виджеты внутри, чтобы соответствовать

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

  • Нет связанных вопросов^_^