Я пытался сохранить виджеты в моем QTabWidget в файл, который позже смог бы загрузить и добавить сохраненные виджеты в виде вкладок в текущем окне.
Однако мой подход пытался использовать pickle pickle.dump возвращает ошибку типа.
Возможно ли сохранить QWidgets?
Я определил пользовательский класс canvas, наследующий QWidget, который содержит QGraphicsScene и представление следующим образом.
class canvas(QWidget):
def __init__(self, parent=None):
super(canvas, self).__init__(parent)
self.painter = QGraphicsScene(0, 0, 794, 1123)
self.resize(794, 1123)
self.painter.setBackgroundBrush(QBrush(Qt.white))
self.view = QGraphicsView(self.painter)
self.layout = QHBoxLayout(self)
self.layout.addWidget(self.view)
self.setLayout(self.layout)
, который затем добавляется в QTabWidget.
Все, что я хочу, - это сохранить список объектов моего класса canvas в файл
Вот минимальный воспроизводимый пример.
if __name__ == "__main__":
tabs = []
tabs.append(canvas())
tabs.append(canvas())
tabs.append(canvas())
pickle.dump(tabs, open('test','w'))