我像这样保存我的一个 QSplitter 的状态:
self.options.setValue("Window/final_splitter", self.splitter2.saveState())
我像这样恢复它:
self.splitter2.restoreState(self.options.value("Window/final_splitter"))
当我保存拆分器时, splitter2.sizes() 表示: [321, 818, 769]
当我恢复分离器时,它在视觉上与我关闭它时的尺寸相同,但 splitter2.sizes() 表示: [224, 572, 537]
而且我无法对拆分器执行更多操作,因为我无法获得正确的大小。
您对如何解决此错误有任何想法吗?
编辑:更奇怪的是:
保存:
self.options.setValue("Window/final_splitter", self.splitter2.sizes())
-> self.splitter2.sizes(): [321, 844, 743]
恢复:
sizes_splitter2 = [int(nbr) for nbr in self.options.value("Window/final_splitter", [])]
self.splitter2.setSizes(sizes_splitter2)
- size_splitter2: [321, 844, 743]
- self.splitter2.sizes(): [224, 590, 519]
编辑 2:当我保存拆分器时,我也会这样做(self 是 QMainWINdow):
self.options.setValue("window_geometry", self.saveGeometry())
self.options.setValue("window_state", self.saveState())
如果我评论这些行, splitter.sizes() 会返回好的值。但是那两条线完成了它们的工作,窗口与它们一起恢复到正确的大小!