<p>为此,您可以使用<a href="http://pyqt.sourceforge.net/Docs/PyQt4/qmainwindow.html#saveState" rel="noreferrer">^{<cd1>}</a>、<del><a href="http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#saveGeometry" rel="noreferrer">^{<cd2>}</a></del><code>resize()</code>和{<cd4>}方法,以及其他答案中提到的<a href="http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#closeEvent" rel="noreferrer">closeEvent()</a>和{a4}。下面是一些例子,让我们了解一下:</p>
<pre><code>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)
</code></pre>
<p><strong>编辑:</strong></p>
<p>更新了使用PyQt API v2的答案。如果使用API v1,则必须手动将<code>settings.value()</code>的结果转换为类似于ByteArray的</p>
^{pr2}$
<p>我还使用了窗口自己的<code>size()</code>和<code>pos()</code>,因为我已经从<code>.ui</code>文件加载窗口。如果从头开始对窗口进行编码,可以在这些行之前将其设置为默认值。对于状态,我默认为一个空字符串,该函数很乐意将其作为空ByteArray接受,并且在第一次运行时不执行任何操作。在</p>