我有一个Qt程序,目前我使用Qsettings.saveGeometry()和Qsettings.saveState()函数允许程序恢复用户在上一次会话中设置的布局。但是,并非所有几何信息都被保存,只有主窗口而没有子窗口,特别是停靠窗口的浮动位置和停靠窗口内表列宽度没有被保存。
这个线程似乎试图提供答案(但是用的是C++而不是Python):http://www.qtforum.org/article/38362/save-geometry-of-all-widgets-recursively.html 我正在使用Python编程,我的C++不是很好,所以我无法完全理解上面链接中的示例。
有人知道这种方法是否有效吗?
总的来说,是否可以使用Qsettings存储停靠窗口的浮动位置和表列宽度?
有人能提供基于Python/pyside的解决方案吗?
谢谢。
Ron
这个线程似乎试图提供答案(但是用的是C++而不是Python):http://www.qtforum.org/article/38362/save-geometry-of-all-widgets-recursively.html 我正在使用Python编程,我的C++不是很好,所以我无法完全理解上面链接中的示例。
有人知道这种方法是否有效吗?
总的来说,是否可以使用Qsettings存储停靠窗口的浮动位置和表列宽度?
有人能提供基于Python/pyside的解决方案吗?
谢谢。
Ron
my_window.children()
) 的所有子窗口,并检查该子窗口是否继承自QWidget
(my_child_widget.isWidgetType()
)。您可以采用类似的方法,并为您关心的每个子窗口调用my_child_widget.saveGeometry()
。您可能还需要使用此方法递归地检查每个子窗口的子窗口。 - three_pineapplessaveGeometry
可能会更容易。 - three_pineapples