如何获得QSplitter索引和位置

时间:2014-07-29 21:44:51

标签: python pyqt

创建QSplitter后:

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

用户可以通过向侧面拖动来消费分割器的手柄位置。 每次退出应用程序时,我都想查询Splitter句柄位置。 此数据可以保存到App配置文件中,并且可以使用恢复Splitter设置 Splitter的.moveSplitter(index, pos)方法。

显然,要使用此方法,我需要Splitter的indexes及其pos值。应该使用哪些QSplitter属性/方法来获取其索引以及每个索引处理pos值?

1 个答案:

答案 0 :(得分:2)

A"快照"可以使用返回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)