如何获取QSplitter的索引和位置
在创建了一个QSplitter之后:
splitter=QtGui.QSplitter()
splitter.addWidget(QtGui.QLabel())
splitter.addWidget(QtGui.QLabel())
用户可以通过左右拖动来调整分割条的位置。每次退出应用程序时,我想要查询分割条的位置。这个数据可以保存到应用程序的配置文件中,然后在下次使用时,可以通过分割条的.moveSplitter(index, pos)
方法来恢复分割条的设置。
显然,要使用这个方法,我需要知道分割条的indexes
和它们的pos
值。那么,应该使用QSplitter的哪个属性或方法来获取这些索引和每个索引的分割条pos
值呢?
1 个回答
2
可以通过使用 QSplitter
的 .saveState()
方法来获取它当前状态的“快照”。这个方法会返回一个 PyQt4.QtCore.QByteArray
对象。你可以把这个返回的 QByteArray 对象保存到磁盘上,以后再用 QtCore.QSettings
对象把它取回来。取回的 Splitter 状态可以通过 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)