TypeError: addWidget(self, QWidget, stretch: int = 0, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = Qt.Alignment()): argument 1 has unexpected ty

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
Python 3.8
Win 7
PyQt5, seaborn.
Добрый день. Пытаюсь на форме расположить расположить построенный в seaborn график. Использую следующий, весьма примитивный, код:
Python:
    def disp(self, x):
        f = sns.displot(x)
        self.stat_layer.addWidget(f)
        print(1)
Получаю ошибки: TypeError: addWidget(self, QWidget, stretch: int = 0, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = Qt.Alignment()): argument 1 has unexpected type 'AxesSubplot'. Backend Qt5Agg is interactive backend. Turning interactive mode on.
stat_layer - объект типа QVBoxLayout. По идее, в контейнер такого типа ведь всё равно какой виджет помещать - интерактивный или нет. Или я чего-то слегка не понимаю...
 
Последнее редактирование:

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
Разобрался. Закопали разработчики, конечно, глубоко, но откопал такое решение проблему:
Python:
can = FigureCanvasQTAgg(sns.distplot(x, bins=25).get_figure())
self.stat_layer.addWidget(can)
 

Форум IT Специалистов