from __future__ import absolute_import, division, print_function from builtins import * # @UnusedWildImport from tkinter import StringVar from mcculw import ul from examples.ui.uiexample import UIExample from mcculw.ul import ULError import tkinter as tk class ULGT01(UIExample): def __init__(self, master): super(ULGT01, self).__init__(master) self.create_widgets() def err_code_changed(self, *args): try: err_code = int(self.err_code_variable.get()) except ValueError: err_code = 0 try: message = ul.get_err_msg(err_code) self.err_msg_label["text"] = message except ULError as e: self.show_ul_error(e) def create_widgets(self): '''Create the tkinter UI''' main_frame = tk.Frame(self) main_frame.pack(fill=tk.X, anchor=tk.NW) positive_int_vcmd = self.register(self.validate_positive_int_entry) err_code_label = tk.Label(main_frame) err_code_label["text"] = "Error Code:" err_code_label.grid(row=0, column=0, sticky=tk.W) self.err_code_variable = StringVar(0) self.err_code_entry = tk.Spinbox( main_frame, from_=0, to=2000, textvariable=self.err_code_variable, validate="key", validatecommand=(positive_int_vcmd, "%P")) self.err_code_entry.grid(row=0, column=1, sticky=tk.W) self.err_code_variable.trace("w", self.err_code_changed) err_msg_left_label = tk.Label(main_frame) err_msg_left_label["text"] = "Message:" err_msg_left_label.grid(row=1, column=0, sticky=tk.NW) self.err_msg_label = tk.Label( main_frame, justify=tk.LEFT, wraplength=300) self.err_msg_label["text"] = "No error has occurred." self.err_msg_label.grid(row=1, column=1, sticky=tk.W) button_frame = tk.Frame(self) button_frame.pack(fill=tk.X, side=tk.RIGHT, anchor=tk.SE) quit_button = tk.Button(button_frame) quit_button["text"] = "Quit" quit_button["command"] = self.master.destroy quit_button.grid(row=0, column=0, padx=3, pady=3) # Start the example if this module is being run if __name__ == "__main__": # Start the example ULGT01(master=tk.Tk()).mainloop()