1919import types
2020import datetime
2121import time
22- import textwrap
2322import pickle
2423import calendar
2524from random import randint
@@ -397,7 +396,7 @@ def __init__(self, type, size=(None, None), auto_size_text=None, font=None, back
397396 self .TKRightClickMenu = None
398397 self .Widget = None # Set when creating window. Has the main tkinter widget for element
399398
400- def RightClickMenuCallback (self , event ):
399+ def _RightClickMenuCallback (self , event ):
401400 self .TKRightClickMenu .tk_popup (event .x_root , event .y_root , 0 )
402401 self .TKRightClickMenu .grab_release ()
403402
@@ -501,7 +500,7 @@ def TabGroupSelectHandler(self, event):
501500 if self .ParentForm .CurrentlyRunningMainloop :
502501 self .ParentForm .TKroot .quit ()
503502
504- def KeyboardHandler (self , event ):
503+ def _KeyboardHandler (self , event ):
505504 if self .Key is not None :
506505 self .ParentForm .LastButtonClicked = self .Key
507506 else :
@@ -510,7 +509,7 @@ def KeyboardHandler(self, event):
510509 if self .ParentForm .CurrentlyRunningMainloop :
511510 self .ParentForm .TKroot .quit ()
512511
513- def ClickHandler (self , event ):
512+ def _ClickHandler (self , event ):
514513 if self .Key is not None :
515514 self .ParentForm .LastButtonClicked = self .Key
516515 else :
@@ -3292,7 +3291,7 @@ def __init__(self, values, headings=None, visible_column_map=None, col_widths=No
32923291 self .DisplayRowNumbers = display_row_numbers
32933292 self .NumRows = num_rows if num_rows is not None else size [1 ]
32943293 self .RowHeight = row_height
3295- self .TKTreeview = None
3294+ self .TKTreeview = None # type: ttk.Treeview
32963295 self .AlternatingRowColor = alternating_row_color
32973296 self .VerticalScrollOnly = vertical_scroll_only
32983297 self .HideVerticalScroll = hide_vertical_scroll
@@ -3308,7 +3307,7 @@ def __init__(self, values, headings=None, visible_column_map=None, col_widths=No
33083307 size = size , pad = pad , key = key , tooltip = tooltip , visible = visible )
33093308 return
33103309
3311- def Update (self , values = None , num_rows = None , visible = None ):
3310+ def Update (self , values = None , num_rows = None , visible = None , select_rows = None ):
33123311 if values is not None :
33133312 children = self .TKTreeview .get_children ()
33143313 for i in children :
@@ -3330,6 +3329,9 @@ def Update(self, values=None, num_rows=None, visible=None):
33303329 self .TKTreeview .pack ()
33313330 if num_rows is not None :
33323331 self .TKTreeview .config (height = num_rows )
3332+ if select_rows is not None :
3333+ rows_to_select = [i + 1 for i in select_rows ]
3334+ self .TKTreeview .selection_set (rows_to_select )
33333335
33343336 def treeview_selected (self , event ):
33353337 selections = self .TKTreeview .selection ()
@@ -5148,7 +5150,7 @@ def CharWidthInPixels():
51485150 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
51495151 AddMenuItem (top_menu , menu [1 ], element )
51505152 element .TKRightClickMenu = top_menu
5151- element .TKColFrame .bind ('<Button-3>' , element .RightClickMenuCallback )
5153+ element .TKColFrame .bind ('<Button-3>' , element ._RightClickMenuCallback )
51525154 # ------------------------- Pane element ------------------------- #
51535155 if element_type == ELEM_TYPE_PANE :
51545156 bd = element .BorderDepth if element .BorderDepth is not None else border_depth
@@ -5227,7 +5229,7 @@ def CharWidthInPixels():
52275229 tktext_label .configure (background = element .BackgroundColor )
52285230 if element .TextColor != COLOR_SYSTEM_DEFAULT and element .TextColor is not None :
52295231 tktext_label .configure (fg = element .TextColor )
5230- tktext_label .pack (side = tk .LEFT , padx = elementpad [0 ], pady = elementpad [1 ], expand = True )
5232+ tktext_label .pack (side = tk .LEFT , padx = elementpad [0 ], pady = elementpad [1 ])
52315233 if element .Visible is False :
52325234 tktext_label .pack_forget ()
52335235 element .TKText = tktext_label
@@ -5240,7 +5242,7 @@ def CharWidthInPixels():
52405242 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
52415243 AddMenuItem (top_menu , menu [1 ], element )
52425244 element .TKRightClickMenu = top_menu
5243- tktext_label .bind ('<Button-3>' , element .RightClickMenuCallback )
5245+ tktext_label .bind ('<Button-3>' , element ._RightClickMenuCallback )
52445246 # ------------------------- BUTTON element ------------------------- #
52455247 elif element_type == ELEM_TYPE_BUTTON :
52465248 element = element # type: Button
@@ -5414,7 +5416,7 @@ def CharWidthInPixels():
54145416 textvariable = element .TKStringVar , bd = border_depth ,
54155417 font = font , show = show , justify = justify )
54165418 if element .ChangeSubmits :
5417- element .TKEntry .bind ('<Key>' , element .KeyboardHandler )
5419+ element .TKEntry .bind ('<Key>' , element ._KeyboardHandler )
54185420 element .TKEntry .bind ('<Return>' , element .ReturnKeyHandler )
54195421 if element .BackgroundColor is not None and element .BackgroundColor != COLOR_SYSTEM_DEFAULT :
54205422 element .TKEntry .configure (background = element .BackgroundColor )
@@ -5435,7 +5437,7 @@ def CharWidthInPixels():
54355437 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
54365438 AddMenuItem (top_menu , menu [1 ], element )
54375439 element .TKRightClickMenu = top_menu
5438- element .TKEntry .bind ('<Button-3>' , element .RightClickMenuCallback )
5440+ element .TKEntry .bind ('<Button-3>' , element ._RightClickMenuCallback )
54395441 # ------------------------- COMBOBOX element ------------------------- #
54405442 elif element_type == ELEM_TYPE_INPUT_COMBO :
54415443 max_line_len = max ([len (str (l )) for l in element .Values ]) if len (element .Values ) else 0
@@ -5584,7 +5586,7 @@ def CharWidthInPixels():
55845586 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
55855587 AddMenuItem (top_menu , menu [1 ], element )
55865588 element .TKRightClickMenu = top_menu
5587- element .TKListbox .bind ('<Button-3>' , element .RightClickMenuCallback )
5589+ element .TKListbox .bind ('<Button-3>' , element ._RightClickMenuCallback )
55885590 # ------------------------- MULTILINE element ------------------------- #
55895591 elif element_type == ELEM_TYPE_INPUT_MULTILINE :
55905592 element = element # type: Multiline
@@ -5603,7 +5605,7 @@ def CharWidthInPixels():
56035605 if element .Visible is False :
56045606 element .TKText .pack_forget ()
56055607 if element .ChangeSubmits :
5606- element .TKText .bind ('<Key>' , element .KeyboardHandler )
5608+ element .TKText .bind ('<Key>' , element ._KeyboardHandler )
56075609 if element .EnterSubmits :
56085610 element .TKText .bind ('<Return>' , element .ReturnKeyHandler )
56095611 if element .Focus is True or (toplevel_form .UseDefaultFocus and not focus_set ):
@@ -5620,7 +5622,7 @@ def CharWidthInPixels():
56205622 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
56215623 AddMenuItem (top_menu , menu [1 ], element )
56225624 element .TKRightClickMenu = top_menu
5623- element .TKText .bind ('<Button-3>' , element .RightClickMenuCallback )
5625+ element .TKText .bind ('<Button-3>' , element ._RightClickMenuCallback )
56245626 row_should_expand = True
56255627 # ------------------------- CHECKBOX element ------------------------- #
56265628 elif element_type == ELEM_TYPE_INPUT_CHECKBOX :
@@ -5757,7 +5759,7 @@ def CharWidthInPixels():
57575759 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
57585760 AddMenuItem (top_menu , menu [1 ], element )
57595761 element .TKRightClickMenu = top_menu
5760- element ._TKOut .bind ('<Button-3>' , element .RightClickMenuCallback )
5762+ element ._TKOut .bind ('<Button-3>' , element ._RightClickMenuCallback )
57615763 row_should_expand = True
57625764 # ------------------------- IMAGE element ------------------------- #
57635765 elif element_type == ELEM_TYPE_IMAGE :
@@ -5795,13 +5797,13 @@ def CharWidthInPixels():
57955797 element .TooltipObject = ToolTip (element .tktext_label , text = element .Tooltip ,
57965798 timeout = DEFAULT_TOOLTIP_TIME )
57975799 if element .EnableEvents :
5798- element .tktext_label .bind ('<ButtonPress-1>' , element .ClickHandler )
5800+ element .tktext_label .bind ('<ButtonPress-1>' , element ._ClickHandler )
57995801 if element .RightClickMenu or toplevel_form .RightClickMenu :
58005802 menu = element .RightClickMenu or toplevel_form .RightClickMenu
58015803 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
58025804 AddMenuItem (top_menu , menu [1 ], element )
58035805 element .TKRightClickMenu = top_menu
5804- element .tktext_label .bind ('<Button-3>' , element .RightClickMenuCallback )
5806+ element .tktext_label .bind ('<Button-3>' , element ._RightClickMenuCallback )
58055807 # ------------------------- Canvas element ------------------------- #
58065808 elif element_type == ELEM_TYPE_CANVAS :
58075809 width , height = element_size
@@ -5823,7 +5825,7 @@ def CharWidthInPixels():
58235825 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
58245826 AddMenuItem (top_menu , menu [1 ], element )
58255827 element .TKRightClickMenu = top_menu
5826- element ._TKCanvas .bind ('<Button-3>' , element .RightClickMenuCallback )
5828+ element ._TKCanvas .bind ('<Button-3>' , element ._RightClickMenuCallback )
58275829 # ------------------------- Graph element ------------------------- #
58285830 elif element_type == ELEM_TYPE_GRAPH :
58295831 element = element # type: Graph
@@ -5857,7 +5859,7 @@ def CharWidthInPixels():
58575859 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
58585860 AddMenuItem (top_menu , menu [1 ], element )
58595861 element .TKRightClickMenu = top_menu
5860- element ._TKCanvas2 .bind ('<Button-3>' , element .RightClickMenuCallback )
5862+ element ._TKCanvas2 .bind ('<Button-3>' , element ._RightClickMenuCallback )
58615863 # ------------------------- MENUBAR element ------------------------- #
58625864 elif element_type == ELEM_TYPE_MENUBAR :
58635865 element = element # type: MenuBar
@@ -5910,7 +5912,7 @@ def CharWidthInPixels():
59105912 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
59115913 AddMenuItem (top_menu , menu [1 ], element )
59125914 element .TKRightClickMenu = top_menu
5913- labeled_frame .bind ('<Button-3>' , element .RightClickMenuCallback )
5915+ labeled_frame .bind ('<Button-3>' , element ._RightClickMenuCallback )
59145916 # ------------------------- Tab element ------------------------- #
59155917 elif element_type == ELEM_TYPE_TAB :
59165918 element .TKFrame = element .Widget = tk .Frame (form .TKNotebook )
@@ -5945,7 +5947,7 @@ def CharWidthInPixels():
59455947 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
59465948 AddMenuItem (top_menu , menu [1 ], element )
59475949 element .TKRightClickMenu = top_menu
5948- element .TKFrame .bind ('<Button-3>' , element .RightClickMenuCallback )
5950+ element .TKFrame .bind ('<Button-3>' , element ._RightClickMenuCallback )
59495951 # ------------------------- TabGroup element ------------------------- #
59505952 elif element_type == ELEM_TYPE_TAB_GROUP :
59515953
@@ -6144,7 +6146,7 @@ def CharWidthInPixels():
61446146 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
61456147 AddMenuItem (top_menu , menu [1 ], element )
61466148 element .TKRightClickMenu = top_menu
6147- element .TKTreeview .bind ('<Button-3>' , element .RightClickMenuCallback )
6149+ element .TKTreeview .bind ('<Button-3>' , element ._RightClickMenuCallback )
61486150 # ------------------------- Tree element ------------------------- #
61496151 elif element_type == ELEM_TYPE_TREE :
61506152 element = element # type: Tree
@@ -6230,7 +6232,7 @@ def add_treeview_data(node):
62306232 top_menu = tk .Menu (toplevel_form .TKroot , tearoff = False )
62316233 AddMenuItem (top_menu , menu [1 ], element )
62326234 element .TKRightClickMenu = top_menu
6233- element .TKTreeview .bind ('<Button-3>' , element .RightClickMenuCallback )
6235+ element .TKTreeview .bind ('<Button-3>' , element ._RightClickMenuCallback )
62346236 # ------------------------- Separator element ------------------------- #
62356237 elif element_type == ELEM_TYPE_SEPARATOR :
62366238 element = element # type: VerticalSeparator
@@ -6366,7 +6368,6 @@ def StartupTK(my_flex_form: Window):
63666368 if my_flex_form .DebuggerEnabled :
63676369 root .bind ('<Cancel>' , my_flex_form ._callback_main_debugger_window_create_keystroke )
63686370 root .bind ('<Pause>' , my_flex_form ._callback_popout_window_create_keystroke )
6369- my_flex_form .DebuggerEnabled = True
63706371
63716372 # root.bind('<Cancel>', Debugger._build_main_debugger_window)
63726373 # root.bind('<Pause>', Debugger._build_floating_window)
@@ -8331,7 +8332,7 @@ def _build_floating_window(self, location=(None, None)):
83318332 if self .popout_choices [key ] is True :
83328333 value = str (self .locals .get (key ))
83338334 h = min (len (value )// width_value + 1 , MAX_LINES_PER_RESULT_FLOATING )
8334- line += [Text (f' { key } ' , size = (width_var , 1 ), font = POPOUT_WINDOW_FONT ),
8335+ line += [Text ('{}' . format ( key ) , size = (width_var , 1 ), font = POPOUT_WINDOW_FONT ),
83358336 Text (' = ' , font = POPOUT_WINDOW_FONT ),
83368337 Text (value , key = key , size = (width_value , h ), font = POPOUT_WINDOW_FONT )]
83378338 if col + 1 < num_cols :
0 commit comments