def _createGamesVar(self, frame, row): cb = PysolCombo(frame, values=tuple(self.gamenames), selectcommand=self.gameSelected, state='readonly', width=40) cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) return cb
def __init__(self, parent, title, app, **kw): kw = self.initKw(kw) MfxDialog.__init__(self, parent, title, kw.resizable, kw.default) top_frame, bottom_frame = self.createFrames(kw) self.createBitmaps(top_frame, kw) frame = ttk.Frame(top_frame) frame.pack(expand=True, fill='both', padx=10, pady=10) frame.columnconfigure(0, weight=1) notebook = ttk.Notebook(frame) notebook.pack(expand=True, fill='both') for w in WizardWidgets: if isinstance(w, basestring): frame = ttk.Frame(notebook) notebook.add(frame, text=w, sticky='nsew', padding=5) frame.columnconfigure(1, weight=1) row = 0 continue ttk.Label(frame, text=w.label).grid(row=row, column=0) if w.widget == 'preset': if w.variable is None: w.variable = Tkinter.StringVar() values = [_(v) for v in w.values] default = _(w.default) values.remove(default) values.sort() values.insert(0, default) callback = lambda e, w=w: self.presetSelected(e, w) cb = PysolCombo(frame, values=tuple(values), textvariable=w.variable, exportselection=False, selectcommand=callback, state='readonly', width=32) cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) elif w.widget == 'entry': if w.variable is None: w.variable = Tkinter.StringVar() en = ttk.Entry(frame, textvariable=w.variable) en.grid(row=row, column=1, sticky='ew', padx=2, pady=2) elif w.widget == 'menu': if w.variable is None: w.variable = Tkinter.StringVar() values = [_(v) for v in w.values] cb = PysolCombo(frame, values=tuple(values), textvariable=w.variable, exportselection=False, state='readonly', width=32) cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) elif w.widget == 'spin': if w.variable is None: w.variable = Tkinter.IntVar() else: # delete all trace callbacks for mod, cbname in w.variable.trace_vinfo(): w.variable.trace_vdelete(mod, cbname) from_, to = w.values ##s = Spinbox(frame, textvariable=w.variable, from_=from_, to=to) s = PysolScale(frame, from_=from_, to=to, resolution=1, orient='horizontal', variable=w.variable) s.grid(row=row, column=1, sticky='ew', padx=2, pady=2) elif w.widget == 'check': if w.variable is None: w.variable = Tkinter.BooleanVar() ch = ttk.Checkbutton(frame, variable=w.variable, takefocus=False) ch.grid(row=row, column=1, sticky='ew', padx=2, pady=2) if w.current_value is None: v = w.default else: v = w.current_value if w.widget in ('menu', 'preset'): v = _(v) w.variable.set(v) row += 1 focus = self.createButtons(bottom_frame, kw) self.mainloop(focus, kw.timeout)
def __init__(self, parent, title, app, **kw): kw = self.initKw(kw) MfxDialog.__init__(self, parent, title, kw.resizable, kw.default) top_frame, bottom_frame = self.createFrames(kw) self.createBitmaps(top_frame, kw) frame = ttk.Frame(top_frame) frame.pack(expand=True, fill="both", padx=10, pady=10) frame.columnconfigure(0, weight=1) notebook = ttk.Notebook(frame) notebook.pack(expand=True, fill="both") for w in WizardWidgets: if isinstance(w, basestring): frame = ttk.Frame(notebook) notebook.add(frame, text=w, sticky="nsew", padding=5) frame.columnconfigure(1, weight=1) row = 0 continue ttk.Label(frame, text=w.label).grid(row=row, column=0) if w.widget == "preset": if w.variable is None: w.variable = Tkinter.StringVar() values = [_(v) for v in w.values] default = _(w.default) values.remove(default) values.sort() values.insert(0, default) callback = lambda e, w=w: self.presetSelected(e, w) cb = PysolCombo( frame, values=tuple(values), textvariable=w.variable, exportselection=False, selectcommand=callback, state="readonly", width=32, ) cb.grid(row=row, column=1, sticky="ew", padx=2, pady=2) elif w.widget == "entry": if w.variable is None: w.variable = Tkinter.StringVar() en = ttk.Entry(frame, textvariable=w.variable) en.grid(row=row, column=1, sticky="ew", padx=2, pady=2) elif w.widget == "menu": if w.variable is None: w.variable = Tkinter.StringVar() values = [_(v) for v in w.values] cb = PysolCombo( frame, values=tuple(values), textvariable=w.variable, exportselection=False, state="readonly", width=32, ) cb.grid(row=row, column=1, sticky="ew", padx=2, pady=2) elif w.widget == "spin": if w.variable is None: w.variable = Tkinter.IntVar() else: # delete all trace callbacks for mod, cbname in w.variable.trace_vinfo(): w.variable.trace_vdelete(mod, cbname) from_, to = w.values ##s = Spinbox(frame, textvariable=w.variable, from_=from_, to=to) s = PysolScale(frame, from_=from_, to=to, resolution=1, orient="horizontal", variable=w.variable) s.grid(row=row, column=1, sticky="ew", padx=2, pady=2) elif w.widget == "check": if w.variable is None: w.variable = Tkinter.BooleanVar() ch = ttk.Checkbutton(frame, variable=w.variable, takefocus=False) ch.grid(row=row, column=1, sticky="ew", padx=2, pady=2) if w.current_value is None: v = w.default else: v = w.current_value if w.widget in ("menu", "preset"): v = _(v) w.variable.set(v) row += 1 focus = self.createButtons(bottom_frame, kw) self.mainloop(focus, kw.timeout)
def _createPresetVar(self, frame, row): cb = PysolCombo(frame, values=tuple(self.presets), state='readonly') cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) cb.current(0) return cb
def __init__(self, parent, app, **kw): self.parent = parent self.app = app title = TITLE+' - FreeCell Solver' kw = self.initKw(kw) MfxDialog.__init__(self, parent, title, kw.resizable, kw.default) top_frame, bottom_frame = self.createFrames(kw) self.createBitmaps(top_frame, kw) # self.solving_methods = { 'A*': 'a-star', 'Breadth-First Search': 'bfs', 'Depth-First Search': 'soft-dfs', # default 'A randomized DFS': 'random-dfs', ##'"Soft" DFS': 'soft-dfs', } self.games = {} # key: gamename; value: gameid # frame = ttk.Frame(top_frame) frame.pack(expand=True, fill='both', padx=4, pady=4) frame.columnconfigure(1, weight=1) # row = 0 ttk.Label(frame, text=_('Game:'), anchor='w' ).grid(row=row, column=0, sticky='ew', padx=2, pady=2) games = app.getGamesForSolver() gamenames = [''] for id in games: name = app.getGameTitleName(id) gamenames.append(name) self.games[name] = id gamenames.sort() self.gamenames = gamenames cb = PysolCombo(frame, values=tuple(gamenames), selectcommand=self.gameSelected, state='readonly', width=40) cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) self.games_var = cb # row += 1 ttk.Label(frame, text=_('Solving method:'), anchor='w' ).grid(row=row, column=0, sticky='ew', padx=2, pady=2) ##sm = self.solving_methods.values() ##sm.sort() sm = ['A*', 'Breadth-First Search', 'Depth-First Search', 'A randomized DFS', ##'"Soft" DFS' ] cb = PysolCombo(frame, values=tuple(sm), state='readonly') cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) cb.current(sm.index('Depth-First Search')) self.solving_method_var = cb # row += 1 ttk.Label(frame, text=_('Preset:'), anchor='w' ).grid(row=row, column=0, sticky='ew', padx=2, pady=2) presets = [ 'none', 'abra-kadabra', 'cool-jives', 'crooked-nose', 'fools-gold', 'good-intentions', 'hello-world', 'john-galt-line', 'rin-tin-tin', 'yellow-brick-road', ] self.presets = presets cb = PysolCombo(frame, values=tuple(presets), state='readonly') cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) cb.current(0) self.preset_var = cb # row += 1 self.max_iters_var = Tkinter.IntVar() self.max_iters_var.set(10e4) ttk.Label(frame, text=_('Max iterations:'), anchor='w' ).grid(row=row, column=0, sticky='ew', padx=2, pady=2) spin = Tkinter.Spinbox(frame, bg='white', from_=1000, to=10e6, increment=1000, textvariable=self.max_iters_var) spin.grid(row=row, column=1, sticky='w', padx=2, pady=2) # row += 1 self.max_depth_var = Tkinter.IntVar() self.max_depth_var.set(1000) ttk.Label(frame, text=_('Max depth:'), anchor='w' ).grid(row=row, column=0, sticky='ew', padx=2, pady=2) spin = Tkinter.Spinbox(frame, bg='white', from_=100, to=10000, increment=100, textvariable=self.max_depth_var) spin.grid(row=row, column=1, sticky='w', padx=2, pady=2) # row += 1 self.progress_var = Tkinter.BooleanVar() self.progress_var.set(True) w = ttk.Checkbutton(frame, variable=self.progress_var, text=_('Show progress')) w.grid(row=row, column=0, columnspan=2, sticky='ew', padx=2, pady=2) # label_frame = ttk.LabelFrame(top_frame, text=_('Progress')) label_frame.pack(expand=True, fill='both', padx=6, pady=2) #label_frame.columnconfigure(0, weight=1) label_frame.columnconfigure(1, weight=1) # frow = 0 ttk.Label(label_frame, text=_('Iteration:'), anchor='w' ).grid(row=frow, column=0, sticky='ew', padx=4, pady=2) lb = ttk.Label(label_frame, anchor='w') lb.grid(row=frow, column=1, sticky='ew', padx=4, pady=2) self.iter_label = lb frow += 1 ttk.Label(label_frame, text=_('Depth:'), anchor='w' ).grid(row=frow, column=0, sticky='ew', padx=4, pady=2) lb = ttk.Label(label_frame, anchor='w') lb.grid(row=frow, column=1, sticky='ew', padx=4, pady=2) self.depth_label = lb frow += 1 ttk.Label(label_frame, text=_('Stored-States:'), anchor='w' ).grid(row=frow, column=0, sticky='ew', padx=4, pady=2) lb = ttk.Label(label_frame, anchor='w') lb.grid(row=frow, column=1, sticky='ew', padx=4, pady=2) self.states_label = lb # lb = ttk.Label(top_frame, anchor='w') lb.pack(expand=True, fill='x', padx=6, pady=4) self.result_label = lb # focus = self.createButtons(bottom_frame, kw) self.start_button = self.buttons[0] self.play_button = self.buttons[1] self._reset() self.connectGame(self.app.game) self.mainloop(focus, kw.timeout, transient=False)
def _createPresetVar(self, frame, row): cb = PysolCombo(frame, values=tuple(self.presets), state="readonly") cb.grid(row=row, column=1, sticky="ew", padx=2, pady=2) cb.current(0) return cb
def _createGamesVar(self, frame, row): cb = PysolCombo( frame, values=tuple(self.gamenames), selectcommand=self.gameSelected, state="readonly", width=40 ) cb.grid(row=row, column=1, sticky="ew", padx=2, pady=2) return cb