def __init__(self, *args, title=None, control_prefix=None, image_hash=None, select_list_hash=None, **kwargs): """ Control players """ self.max_color_len = len("#80ffff") # For fields which have to contain hex color representation if image_hash is None: image_hash = ImageHash() # Create our own self.image_hash = image_hash if select_list_hash is None: select_list_hash = ImageHash() self.select_list_hash = select_list_hash # Protect against early checking self.players = {} # Dictionary of SelectPlayer self.playing = [] # Playing, in playing order self.cur_pindex = None # Current player index in self.playing list self.controls_frame = None # Set as no controls self.is_players_displayed = False # Set when displayed self.players_frame = None # Set when initialized self.player_field_by_widget = {} if title is None: title = "Player Control" if control_prefix is None: control_prefix = PlayerControl.CONTROL_NAME_PREFIX super().__init__(*args, title=title, control_prefix=control_prefix, **kwargs) SlTrace.set_mw(self.mw) # Setup for reporting super().control_display() # Do base work self.player_props = PlayerProps(self) self.control_display_base() self.mw.protocol("WM_DELETE_WINDOW", self.delete_window) self.selected_widget = None # Last applicable field clicked self.mw.bind ("<Button-1>", self.button_click) self.mw.bind ("<Double-Button-1>", self.double_click) self.player_changed = True # Tested regularly by game play self.score_changed = True # Tested regularly by game play
def list_ckbuttons(self): cb_flags = sorted(self.data_by_flag.keys()) for flag in cb_flags: var = self.data_by_flag[flag][2] SlTrace.lg(f"flag={flag} var={var} val={var.get()}") if __name__ == '__main__': def report_change(flag, val, cklist=None): SlTrace.lg("changed: %s = %d" % (flag, val)) new_val = SlTrace.getLevel(flag) SlTrace.lg("New val: %s = %d" % (flag, new_val)) if cklist is not None: cklist.list_ckbuttons() root = Tk() SlTrace.set_mw(root) ###frame = Frame(root) ###frame.pack() SlTrace.setProps() SlTrace.setFlags("flag1=t,flag2=f,flag3=t,flag4=10, flag5=20. flag6=abc") threshold = 5 SlTrace.setLevel("tint1", 5) end_level = 100 quit_set = False def our_quit(flag=None): """ Test for traceButton :flag: flag arg """ global quit_set if flag is None: flag = "TBD"