使用以下命令创建QSplitter之后:

 splitter=QtGui.QSplitter()
 splitter.addWidget(QtGui.QLabel())
 splitter.addWidget(QtGui.QLabel())


用户只需向侧面拖动分离器的手柄位置,就可以使其整体化。
每次退出应用程序时,我想查询Splitter句柄位置。
可以将这些数据保存到应用程序配置文件中,并使用
拆分器的.moveSplitter(index, pos)方法。

显然,要使用此方法,我将需要Splitter的indexes及其pos值。应该使用什么QSplitter属性/方法来获取其索引以及每个索引的句柄pos值?

最佳答案

可以使用其QSplitter方法获取.saveState()当前状态的“快照”,该方法返回PyQt4.QtCore.QByteArray对象。返回的QByteArray对象可以保存到磁盘,以后可以使用QtCore.QSettings对象进行检索。使用其restoreState()方法将检索到的拆分器状态分配给它“返回”。

例:

splitter=QtGui.QSplitter()
iniFile=os.path.join(os.path.expanduser('~'),'myAppName/myAppNameSettings.ini')
settings=QtCore.QSettings(iniFile, QtCore.QSettings.IniFormat)
splitterSettings=splitter.saveState()
if splitterSettings:
    settings.setValue("splitterSettings", splitter.saveState())


在应用上打开:

settings=QtCore.QSettings(iniFile, QtCore.QSettings.IniFormat)
splitterSettings=settings.value("splitterSettings").toByteArray()
if splitterSettings:
    splitter.restoreState(splitterSettings)

10-07 15:15