import os
import pyqtgraph.parametertree.ParameterTree as ParameterTree
from pyqtgraph.parametertree import Parameter, parameterTypes
from pyqtgraph.Qt import QtCore, QtGui
class MyGroup(parameterTypes.GroupParameter):
def __init__(self, *args):
super().__init__(name='GroupA')
self.addChild(parameterTypes.ListParameter(name='idx', values=[0, 1, 2, 3], value=0))
for i in range(4):
self.addChild(Parameter.create(name=str(i), type='group', children=[{
'name' : 'member', 'type' : 'str'
}]))
self.update_value()
def treeStateChanged(self, param, changes):
if param is self.child('idx'):
# Show the element at this index
self.update_value()
def update_value(self):
# Destroy the old child
for child in self.children():
child.hide()
idx = self.child('idx').value()
self.child(str(idx)).show()
tree.addParameters(MyGroup())
win = QtGui.QWidget()
layout = QtGui.QGridLayout()
win.setLayout(layout)
layout.addWidget(tree)
win.show()
## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()