python - 如何获取QSplitter索引和位置

标签 python pyqt

创建 QSplitter 之后:

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

用户只需侧向拖动即可自定义分离器 handle 的位置。 每次退出应用程序时,我想查询 Splitter 句柄位置。 该数据可以保存到应用程序配置文件中,并且可以使用以下命令恢复拆分器设置 Splitter 的 .moveSplitter(index, pos) 方法。

显然要使用此方法,我需要拆分器的索引及其pos值。应使用什么 QSplitter 属性/方法来获取其索引和每个索引的句柄 pos 值?

最佳答案

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

示例:

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)

关于python - 如何获取QSplitter索引和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25025501/

相关文章:

python - 我可以使用 ctypes 从 C 中嵌入的 python 回调 C 函数吗?

python - Django - 即使链接有效,测试也会失败

python - 是否可以让 QListWidget 选择多个 setCurrentItems

python - Qscrollarea 不显示滚动条并且布局弹出不合适

python - PyQt:如何连接 QComboBox 以使用参数运行

python - 使用 Dask 并行化 HDF 读取-翻译-写入

python - Django render_to_response 未按预期工作

python - 如何隐藏QMainWindow中空的centralwidget

python - PyQt:app.exec_() 停止运行以下所有代码

python - 禁用 qslider 的特定键盘事件