Beispiel #1
0
 def _select_option(self, root, title, label, columns, data, return_column):
     import Tkinter
     import ttk
     rows = ['   '.join(row) for row in data]
     result = self._Object(selection=None)
     dialog = Tkinter.Toplevel(root)
     dialog.title(title)
     tklabel = ttk.Label(dialog, text=label)
     tklabel.pack(padx=5, pady=2, anchor=Tkinter.W)
     listbox = Tkinter.Listbox(dialog, listvariable=Tkinter.StringVar(value=tuple(rows)),
                               height=len(rows), activestyle='dotbox')
     listbox.pack(expand=True, fill=Tkinter.BOTH, padx=5, pady=5)
     def submit():
         idxs = listbox.curselection()
         if len(idxs) == 1:
             result.selection = int(idxs[0])
         dialog.quit()
     button = ttk.Button(dialog, text=u"Ok", command=submit, default='active')
     button.pack(pady=5, padx=5, side=Tkinter.RIGHT)
     listbox.bind('<Double-1>', lambda e: submit())
     dialog.bind('<Return>', lambda e: submit())
     dialog.bind('<Escape>', lambda e: dialog.quit())
     dialog.protocol('WM_DELETE_WINDOW', dialog.quit)
     dialog.update()
     dialog.minsize(dialog.winfo_width() + 50, dialog.winfo_height())
     dialog.after(1, lambda: listbox.focus_force())
     root.mainloop()
     if result.selection is not None:
         return data[result.selection][return_column - 1]
     else:
         return None
Beispiel #2
0
    def _select_option(self, root, title, label, columns, data, return_column):
        import tkinter
        import tkinter.ttk
        rows = ['   '.join(row) for row in data]
        result = self._Object(selection=None)
        dialog = tkinter.Toplevel(root)
        dialog.title(title)
        tklabel = tkinter.ttk.Label(dialog, text=label)
        tklabel.pack(padx=5, pady=2, anchor=tkinter.W)
        listbox = tkinter.Listbox(dialog, listvariable=tkinter.StringVar(value=tuple(rows)),
                                  height=len(rows), activestyle='dotbox')
        listbox.pack(expand=True, fill=tkinter.BOTH, padx=5, pady=5)

        def submit():
            idxs = listbox.curselection()
            if len(idxs) == 1:
                result.selection = int(idxs[0])
            dialog.quit()

        button = tkinter.ttk.Button(dialog, text=u"Ok", command=submit, default='active')
        button.pack(pady=5, padx=5, side=tkinter.RIGHT)
        listbox.bind('<Double-1>', lambda e: submit())
        dialog.bind('<Return>', lambda e: submit())
        dialog.bind('<Escape>', lambda e: dialog.quit())
        dialog.protocol('WM_DELETE_WINDOW', dialog.quit)
        dialog.update()
        dialog.minsize(dialog.winfo_width() + 50, dialog.winfo_height())
        dialog.after(1, lambda: listbox.focus_force())
        root.mainloop()
        if result.selection is not None:
            return data[result.selection][return_column - 1]
        else:
            return None
Beispiel #3
0
 def submit():
     idxs = listbox.curselection()
     if len(idxs) == 1:
         result.selection = int(idxs[0])
     dialog.quit()
Beispiel #4
0
 def submit():
     idxs = listbox.curselection()
     if len(idxs) == 1:
         result.selection = int(idxs[0])
     dialog.quit()