我保存了一个QSplitter的状态:
self.options.setValue("Window/final_splitter", self.splitter2.saveState())
我就这样恢复了:
^{pr2}$保存拆分器时,splitter2.size()指示:[321818769]
当我恢复拆分器时,它的尺寸与关闭它时的尺寸相同,但splitter2.size()表示:[224572537]
我不能对拆分器执行更多操作,因为我无法正确调整它的大小。在
你有什么办法解决这个问题吗?在
编辑: 更奇怪的是:
保存:
self.options.setValue("Window/final_splitter", self.splitter2.sizes())
->;自拆分器2.size():[321844743]
正在恢复:
sizes_splitter2 = [int(nbr) for nbr in self.options.value("Window/final_splitter", [])]
self.splitter2.setSizes(sizes_splitter2)
编辑2: 保存拆分器时,我也会这样做(self是QMainWIndow):
self.options.setValue("window_geometry", self.saveGeometry())
self.options.setValue("window_state", self.saveState())
如果我评论这些台词分离器尺寸()返回正确值。 但这两条线做了他们的工作,窗户被恢复到正确的大小!在
.restoreState()
的documentation表示必须将返回值重新转换为ByteArray
(QSettings
可以返回{值得注意的是,
QSettings
的行为在不同版本的PyQt/PySide和不同的平台上有所不同,但是上面的内容在所有情况下都应该有效。在我猜你是想在窗口完全显示之前查询拆分器的大小。在
解决此问题的一种方法是在事件循环启动后使用单次计时器执行进一步的操作。在
希望这个演示脚本可以显示出发生了什么:
相关问题 更多 >
编程相关推荐