;iK%^ddlmZddlmZmZmZmZddlmZddl m Z GddeZ dS) )GroupParameterItem)QtCore QtWidgetsQtGuimkQApp) TreeWidget) ParameterItemceZdZdZddZddZddZdZdd Zd Z dd Z d Z d e j ddfdZdejdeffd ZdZdZdZfdZdZxZS) ParameterTreezEWidget used to display or control data from a hierarchy of ParametersNTcHtj||||jj||jj|d|d|ddgd|_ | tj jj|| |j|j|j|j|j|jd|_|d|d||dS)aJ ============== ======================================================== **Arguments:** parent (QWidget) An optional parent widget showHeader (bool) If True, then the QTreeView header is displayed. ============== ======================================================== Fr ParameterValueNT)r __init__setVerticalScrollMode ScrollModeScrollPerPixelsetHorizontalScrollMode setAnimatedsetColumnCountsetHeaderLabelsparamSetheadersetSectionResizeModer QHeaderView ResizeModeResizeToContentssetHeaderHidden itemChangedconnectitemChangedEvent itemExpandeditemExpandedEvent itemCollapseditemCollapsedEventlastSelsetRootIsDecoratedsetAlternatingRowColors_updatePalettepalette)selfparent showHeaders YC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\pyqtgraph/parametertree/ParameterTree.pyrzParameterTree.__init__ sk D&))) ""4?#ABBB $$T_%CDDD  A k73444  **9+@+K+\]]] ^,,,   !6777 !!$"8999 ""4#:;;;  &&& $$T*** DLLNN+++++c\||||dS)a Set the top-level :class:`Parameter ` to be displayed in this ParameterTree. If *showTop* is False, then the top-level parameter is hidden and only its children will be visible. This is a convenience method equivalent to:: tree.clear() tree.addParameters(param, showTop) )showTopN)clear addParameters)r+paramr1s r. setParameterszParameterTree.setParameters#s0  5'22222r/c||}||}|sm|dd|dt jdd|dt jdd|dz}||||D]}||||dzdS)a Adds one top-level :class:`Parameter ` to the view. ============== ========================================================== **Arguments:** param The :class:`Parameter ` to add. root The item within the tree to which *param* should be added. By default, *param* is added as a top-level item. showTop If False, then *param* will be hidden, and only its children will be visible in the tree. ============== ========================================================== )depthNr6r)rootr8) makeTreeIteminvisibleRootItemsetText setSizeHintrQSizeaddChildtreeWidgetChangedr3)r+r4r:r8r1itemchs r.r3zParameterTree.addParameters2s!!!.. <))++D  Q###  FL1$5$5666  FL1$5$5666  d     = =B   rE!G  < < < < = =r/cR|dS)z> Remove all parameters from the tree. N)r< takeChildren)r+s r.r2zParameterTree.clearPs(   --/////r/c |}|dS||||}|+|||dS|}`)zEGive input focus to the next (or previous) item after *item* TNforward)r,nextFocusableChildsetFocussetCurrentItem)r+rBrHr,nextItems r. focusNextzParameterTree.focusNextVss [[]]F~..vtW.MMH#!!#####H---D r/c4||ddS)NFrG)rMr+rBs r. focusPreviouszParameterTree.focusPreviousds tU+++++r/c||rd}nK|dz }n3|r||dz}n||dz }|r0tt||}ntt|dd}|D]\}||}t |dr|r|cS|||}||cS]dS)Nr6r isFocusablerG) childCount indexOfChildlistrangechildhasattrrSrI)r+r: startItemrHindexindsirBs r.rIz ParameterTree.nextFocusableChildgs(   ,))!+ 9)))44q8)))44q8  .eT__%6%67788DDeR,,--D  A::a==Dt]++ 0@0@0B0B  ..tW.EE#KKK$tr/c||}t|dr||dSdS)NcontextMenuEvent) currentItemrYr_)r+evrBs r.r_zParameterTree.contextMenuEventsJ!! 4+ , , &  ! !" % % % % % & &r/r*returncLt}|tjjj}|tjjj}||k}|d|tjj j tjj j tjj j fD]}||tjjj }|dr|d}n|d}|d||tjjj|||dS)NdarkModen)rcolorrQPalette ColorRole WindowText lightnessWindow setProperty ColorGroupDisabledActiveInactiveBasepropertylighterdarkersetAlphasetColor AlternateBase setPalette) r+r*appwindowTextLightnesswindowLightnessrdgroup baseColoralternateColors r.r)zParameterTree._updatePalettesfhh&mmEN,D,OPPZZ\\!--(@(GHHRRTT&8  H--- N % . N % , N % .   E  (-I||J'' 7!*!2!23!7!7!*!1!1#!6!6  # #C ( ( (   (6        tr/eventc|tjjjkrG|D]1}t |tr||j 2n|tjjj kr6t}| | nS|tjjjkr'| | t|S)N)typerQEventType FontChange listAllItems isinstancer updateDepthr8ApplicationPaletteChangerr)r* PaletteChangesuperr)r+rrBr{ __class__s r.rzParameterTree.events ::<<6=-8 8 8))++ 1 1d$6771$$TZ000 1ZZ\\V]/H H H((C    . . . . ZZ\\V]/= = =     / / /ww}}U###r/cTt|dr||dSdS)NcolumnChangedEvent)rYr)r+rBcols r.r!zParameterTree.itemChangedEvents9 4- . . )  # #C ( ( ( ( ( ) )r/cTt|dr|ddSdS)NexpandedChangedEventTrYrrOs r.r#zParameterTree.itemExpandedEvents9 4/ 0 0 ,  % %d + + + + + , ,r/cTt|dr|ddSdS)NrFrrOs r.r%z ParameterTree.itemCollapsedEvents9 4/ 0 0 -  % %e , , , , , - -r/c|}t|dkrd}|j4t|jtr|jd| d|_dS|d|_t |ddr|ddtj|S)NrFr6selectedT) selectedItemslenr&rr rrYrselectionChanged)r+argsselrs r.rzParameterTree.selectionChangeds  "" s88q==C < # 4<(O(O # L ! !% ( ( ( ;DL F1v 3q6: & & " FOOD ! ! !'uww'..r/c d\}}|}|D]}|r |j}n#t$rd}YnwxYw|d}|d}t |||zt d|zt d|z}|t d||z }| s)|| z }tj ||S)N)r6r6r6r) indentationrisHiddenr8AttributeErrorsizeHintmaxwidthheightrrr?)r+whindxr8s0s1s r.rzParameterTree.sizeHintsS1  ""$$ 2 2Azz||  !    ABABAus{SBHHJJ%7%77#a:L:LLMMA Q RYY[[11 1AA{{}}%%'' ( %%'' 'A|Aq!!!sA AA)NT)T)Nr6T)__name__ __module__ __qualname____doc__rr5r3r2rMrPrIr_rrir)rrboolrr!r#r%rr __classcell__)rs@r.r r s^OO,,,,2 3 3 3 3====<000    ,,,6&&& "en"""""H $6= $T $ $ $ $ $ $))),,,--- / / / / /&"""""""r/r N) parameterTypesrQtrrrrwidgets.TreeWidgetr r r r/r.rs......111111111111++++++((((((l"l"l"l"l"Jl"l"l"l"l"r/