python – PyQT窗口:我想记住它关闭的位置

python – PyQT窗口:我想记住它关闭的位置,第1张

概述我有一个QDialog,当用户关闭QDialog,并在以后重新打开它时,我想记住位置并在完全相同的位置打开窗口.我怎么会记得那个位置? 为此,您可以使用 saveState(), saveGeometry() resize()和move()方法,以及其他答案提到的 closeEvent()和 QSettings.这是一个例子,以获得这个想法: class MyWindow(QMainWindow) @H_502_6@ 我有一个QDialog,当用户关闭QDialog,并在以后重新打开它时,我想记住位置并在完全相同的位置打开窗口.我怎么会记得那个位置?解决方法@H_301_9@ 为此,您可以使用 saveState(),saveGeometry() resize()和move()方法,以及其他答案提到的 closeEvent()和 QSettings.这是一个例子,以获得这个想法:

class MyWindow(QMainWindow):    def __init__(self,parent):        QMainWindow.__init__(self,parent)        self.settings = QSettings("MyCompany","MyApp")        self.restoreGeometry(self.settings.value("geometry",""))        self.restoreState(self.settings.value("windowstate",""))    def closeEvent(self,event):        self.settings.setValue("geometry",self.saveGeometry())        self.settings.setValue("windowstate",self.saveState())        QMainWindow.closeEvent(self,event)

编辑:

更新了使用PyQt API v2的答案.如果使用API​​ v1,则必须手动将settings.value()的结果转换为ByteArray

self.restoreState(self.settings.value("windowstate").toByteArray())

我还使用了窗口自己的size()和pos(),因为我已经从.ui文件加载了窗口.如果从头开始编码窗口,您可以在这些行之前将其设置为默认值.对于状态,我默认为一个空字符串,该函数愉快地接受为空ByteArray并且在第一次运行时不执行任何 *** 作.

总结

以上是内存溢出为你收集整理的python – PyQT窗口:我想记住它关闭的位置全部内容,希望文章能够帮你解决python – PyQT窗口:我想记住它关闭的位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存