Python PyQt 4-在应用程序关闭时将窗口中的所有数据保存到文件

Python PyQt 4-在应用程序关闭时将窗口中的所有数据保存到文件,python,pyqt,Python,Pyqt,在应用程序关闭之前,是否有一种快速的python方法将所有小部件中的所有数据保存到文件中? 当然,在应用程序重新运行后阅读并恢复?QWidget.saveGeometry保存小部件的几何图形。 QMainWindow.saveState保存窗口的工具栏和dockwidget。 要保存其他内容,可以使用pickle。根据问题和完整的答案,这是一个完整的工作示例: import sys from PyQt5.QtWidgets import QApplication, QWidget, QMainW

在应用程序关闭之前,是否有一种快速的python方法将所有小部件中的所有数据保存到文件中?
当然,在应用程序重新运行后阅读并恢复?

QWidget.saveGeometry
保存小部件的几何图形。
QMainWindow.saveState
保存窗口的工具栏和dockwidget。
要保存其他内容,可以使用pickle。

根据问题和完整的答案,这是一个完整的工作示例:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
from PyQt5.QtCore import QSettings, QPoint, QSize

class myApp(QMainWindow):

    def __init__(self):
        super( myApp, self ).__init__()
        self.settings = QSettings( 'My company', 'myApp' )

        # Initial window size/pos last saved. Use default values for first time
        windowScreenGeometry = self.settings.value( "windowScreenGeometry" )
        windowScreenState = self.settings.value( "windowScreenState" )

        if windowScreenGeometry:
            self.restoreGeometry( windowScreenGeometry )

        else:
            self.resize( 600, 400 )

        if windowScreenState:
            self.restoreState( windowScreenState )

    def closeEvent(self, e):
        # Write window size and position to config file
        self.settings.setValue( "windowScreenGeometry", self.saveGeometry() )
        self.settings.setValue( "windowScreenState", self.saveState() )
        e.accept()

if __name__ == '__main__':
    app = QApplication( sys.argv )
    frame = myApp()
    frame.show()
    app.exec_()