当前位置: 首页 > 知识库问答 >
问题:

qt-pyside-.savegeom().saveState()(再次)

赫连秦迟
2023-03-14

这是qt-pyside-savegeometry()saveState()的后续问题

null

这种方法适用于所有停靠窗口的停靠位置。它也可以很好地工作在浮动位置的未对接的窗口,只要窗口是未对接的出口。

当用户在会话内根据他们的需要裁剪浮动窗口的位置时,停靠和重新浮动窗口使其成功地恢复用户的首选位置。

然而,当用户裁剪了窗口的大小和位置,然后停靠窗口,然后退出时,问题就出现了。重新启动时,窗口不会恢复用户首选的浮动位置。

上面链接的另一个问题的答案中的任何建议都没有帮助,因为QdockWidget没有任何getGeom()setGeom()类型的方法。它也没有自己的seveGeometry()restoreGeometry()方法。我猜主窗口方法也应该负责dockedwidgets。但是上述行为没有达到所需的功能。

我曾尝试对QdockWidget的widget()方法返回的对象使用save和restore方法,但这并不起作用。(它修改QdockWidget的内容,而不是浮动窗口的位置)

所以我想我的精炼问题是:br>1)其他人有没有注意到主窗口save/restore的上述缺点,或者我可能正在做什么来阻止停靠窗口的正确恢复。

共有1个答案

程招
2023-03-14

好的伙计们。答案就在这里。Qt中有一个bug。当主窗口最大化并且QDocWidget's停靠(不浮动)时,浮动位置不保存。

这段代码是一个简单的变通方法。

要保存:br>

settings = QtCore.QSettings(org_name, app_name)
is_floating = main_win._ui.dockWin.isFloating()
settings.setValue('dockWin/isFloating', is_floating)
main_win._ui.dockWin.setFloating(True)
settings.setValue('geometry', main_win.saveGeometry())
settings.setValue('state', main_win.saveState())

要还原:br>

settings = QtCore.QSettings(org_name, app_name)
main_win.restoreGeometry(settings.value('geometry'))
main_win.restoreState(settings.value('state'))
main_win._ui.dockWin.setFloating(settings.value('dockWin/isFloating')=='true')
 类似资料:
  • PySide 项目的目的是提供一个 LGPL 的 Python 绑定 Qt 开发平台。 在 Qt 的 Python 的项目旨在提供一个完整的端口 PySide 模块。 该模块于2018年6月中旬作为技术预览版发布(支持Qt 5.11),并于2018年12月针对 Qt 5.12正式发布,不带技术预览标签。 该 Wiki 页面跟踪 Qt for Python 项目开发的进度,并提供有关此工作的更多信息。

  • 问题内容: 我正在使用pyside(qt)开发一个桌面应用程序,我想访问(迭代)QWidget的所有行编辑组件。在qt中,我找到了两个方法 findChild 和 findChildren, 但是没有找到合适的示例,并且我的代码显示错误, “ form”对象没有属性“ findChild”。 这里的“表单”是Qwidget表单,由lineEdit,组合框,Qpushbuttons等组件组成。 码:

  • 问题内容: 我有来自的显示数据。树的一列显示有一个委托,该委托使用户可以编辑和显示富文本。下面是一个SSCCE,它将编辑内容限制为粗体(使用键盘快捷键)。 当用户编辑其中一项时,如何设置它,以便除了使用键盘快捷键(CTRL-B)切换粗体之外,用户还可以使用工具栏图标进行切换? 到目前为止,键盘快捷键的效果很好(您可以双击,编辑文本,并且CTRL-B将切换为粗体)。但是,我还没有弄清楚如何将工具栏中

  • Qt#

    Qt# 是 Qt 图形开发工具包的 C# 封装库。

  • Qt

    Qt 是一种更快,更智能的方式来为多个屏幕创建创新的设备、现代用户界面和应用程序。它是一个跨平台的C++应用程序开发框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发图形用户界面程序,也可用于开发非图形用户界面(比如命令行界面)程序。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。 基本上,Qt 同 X11上的GTK、Motif、Openwin和Windows上的MFC,OWL

  • 来自qt-project百科:Qt-Project是由Qt社区上对Qt感兴趣的人达成共识的地方。任何人都可以在社区上分享它感兴趣的东西,参与它的开发,并且向Qt的开发做出贡献。 Qt-Project是一个为Qt未来开发开源部分的组织。它基于使用者的贡献。最大的贡献者是DIGIA,它可以提供Qt的商业授权。 Qt对于公司分为开源方向和商业方向。商业方向的公司不需要遵守开源协议。没有商业方向的许可的公