在应用程序关闭之前,是否有一种快速的 Python 方法可以将所有小部件中的所有数据保存到文件中?当然,在应用程序重新运行后阅读并恢复?
2094 次
2 回答
4
QWidget.saveGeometry
保存小部件的几何形状。
QMainWindow.saveState
保存窗口的工具栏和停靠小部件。
要保存其他东西,您可以使用泡菜。
于 2011-02-11T21:41:04.177 回答
1
基于问题如何记住 PyQt 应用程序的最后一个几何形状?并完成@Artur Gaspar的回答,这是一个完整的工作示例:
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_()
于 2018-07-08T05:52:33.193 回答