Пример #1
0
    def __init__(self, container, height=800, width=1000, *args, **kwargs):

        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("enter constructor")

        self.canvas = tk.Canvas(container, height=height, width=width)
        self.canvas.grid(row=0, column=0, sticky='news')

        self.scrollbar = tk.Scrollbar(container,
                                      orient="vertical",
                                      command=self.canvas.yview)
        self.scrollbar.grid(row=0, column=1, sticky='nsw')
        self.canvas.configure(yscrollcommand=self.scrollbar.set)
        self.canvas.configure(yscrollincrement='20')
        self.canvas.configure(scrollregion=self.canvas.bbox("all"))

        self.scrollwindow = tk.Frame(self.canvas)
        self.canvas.create_window((0, 0),
                                  window=self.scrollwindow,
                                  anchor="nw")

        self.scrollwindow.bind("<Configure>", self.configure_window)
        self.scrollwindow.bind("<Enter>", self.enter_handler)
        self.scrollwindow.bind("<Leave>", self.leave_handler)
        self.scrollwindow.bind('<Button-4>', self.mouse_wheel)
        self.scrollwindow.bind('<Button-5>', self.mouse_wheel)

        self.canvas.focus_set()
        self.logger.debug("leave constructor")
Пример #2
0
    def __init__(self, notebook):
        self.logger = Logger(self, Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)
        super().__init__(notebook, notebook.HOME_FRAME, 'Business')

        self.add_title('Home Form')
        self.add_entry('Name', 'name', str)
        self.add_entry('Address1', 'address1', str)
        self.add_entry('Address2', 'address2', str)

        self.add_entry('City', 'city', str, inc_row=False, span=1, width=20)
        self.add_entry('State', 'state', str, width=20, span=1)

        self.add_entry('Zip Code', 'zip', str, width=20, span=1, inc_row=False)
        self.add_entry('Country', 'country', str, width=20, span=1)

        self.add_entry('Email',
                       'email_address',
                       str,
                       width=20,
                       span=1,
                       inc_row=False)
        self.add_entry('Phone', 'phone_number', str, width=20, span=1)

        self.add_entry('Web Site', 'web_site', str)
        self.add_entry('Description', 'description', str)

        self.add_text('Terms', 'terms')
        self.add_text('Returns', 'returns')
        self.add_text('Warranty', 'warranty')
        self.add_button('Save')
Пример #3
0
    def __init__(self, parent):# , title = None):

        #init the logger
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug("Base Dialog start constructor")

        tk.Toplevel.__init__(self, parent)
        self.transient(parent)

        self.parent = parent

        self.result = None
        # get a copy of the data_store for the children

        body = tk.Frame(self)
        self.initial_focus = self.body(body)
        body.grid(padx=5, pady=5)

        self.buttonbox()

        self.grab_set()

        if not self.initial_focus:
            self.initial_focus = self

        self.protocol("WM_DELETE_WINDOW", self.cancel)

        self.initial_focus.focus_set()

        #self.wait_window(self)
        self.logger.debug("Base Dialog leave constructor")
Пример #4
0
    def __init__(self, master, table, column, *args, **kargs):
        '''
        master = the frame to bind this frame to
        name   = the text of the label
        table  = the name of the database table that is associated with this widget
        column = the name of the database column this widget associates with
        '''
        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("ComboBox enter constructor")

        super().__init__(master, *args, **kargs)

        self.table = table
        self.column = column
        self.data = Database.get_instance()

        self.content = ttk.Combobox(self, state='readonly')
        self.content.grid(row=0, column=1, padx=5, pady=5, sticky=tk.W)

        self.row = {
            'table': self.table,
            'column': self.column,
            'self': self,
            'hasid': None
        }
        self.logger.debug("ComboBox leave constructor")
Пример #5
0
    def __init__(self, notebook):
        self.logger = Logger(self, Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)
        super().__init__(notebook, notebook.PURCHASE_FRAME, 'PurchaseRecord')

        self.add_title('Purchase Setup Form')
        self.add_indirect_label('Vendor', 'vendor_ID', 'Vendor', 'name')
        self.add_dynamic_label('Gross', 'gross', width=20)
        self.add_dynamic_label('Tax', 'tax', width=20)
        self.add_dynamic_label('Shipping', 'shipping', width=20)
        self.add_combo('Purchase Type',
                       'PurchaseType',
                       'type_ID',
                       inc_row=False,
                       width=20)
        self.add_combo('Purchase Status',
                       'PurchaseStatus',
                       'status_ID',
                       width=20)
        self.add_text('Notes', 'notes', height=10)

        self.add_button('Prev')
        self.add_button('Next')
        self.add_button('Save')
        self.add_button('Delete')
        self.add_commit_btn()
Пример #6
0
    def __init__(self, master, table, column, *args, **kargs):
        '''
        master = the frame to bind this frame to
        name   = the text of the label
        table  = the name of the database table that is associated with this widget
        column = the name of the column this widget associates with
        '''
        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("LabelBox enter constructor")

        super().__init__(master, *args, **kargs)

        self.table = table
        self.column = column
        self.content = tk.StringVar(master)
        self.entry = tk.Label(self, textvariable=self.content)
        self.entry.grid(row=0, column=1, padx=5, pady=5, sticky=tk.W)

        self.row = {
            'table': self.table,
            'column': self.column,
            'self': self,
            'hasid': None
        }
        self.logger.debug("LabelBox leave constructor")
Пример #7
0
    def __init__(self, master, form=None, *args, **kargs):
        '''
        master = The frame to bind the widgets to.
        name_id = The id of the line containing the customer to associate
        form = Name of the form to bind the events to.
        '''
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug("Line Widget enter constructor")

        super().__init__(master, bd=1, relief=tk.RIDGE, *args, **kargs)

        #self.name_id = int(name_id)
        self.form = form
        self.events = EventHandler.get_instance()
        self.data = Database.get_instance()
        self.line_list = []
        self.crnt_index = 0
        self.events.register_event('next_button', self.clear)
        self.events.register_event('prev_button', self.clear)

        # add button
        tk.Button(self, text="Add", command=self.add).grid(row=0, column=0)
        # reset button
        tk.Button(self, text="Reset", command=self.clear).grid(row=0, column=1)

        # add one line widget
        self.add()
        # self.row = {'table': None, 'column':None, 'self':self, 'hasid':None}
        self.logger.debug("Line Widget leave constructor")
Пример #8
0
    def __init__(self, master, form, line, *args, **kargs):
        '''
        master = The frame to bind the widgets to.
        form = Name of the form to bind the events to.
        line = The line number of the line, displayed as a label
        '''
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug("Line Widget enter constructor")
        self.data = Database.get_instance()

        super().__init__(master, *args, **kargs)

        self.form = form
        self.events = EventHandler.get_instance()
        #self.data = Database.get_instance()

        self.values = self.data.populate_list('InventoryItem', 'name')
        self.values.insert(0, '')  # first line is blank

        tk.Label(self, text='%d' % (int(line))).grid(row=0, column=0)
        self.quan = tk.Spinbox(self, from_=1, to=99, width=2)
        self.quan.grid(row=0, column=1, padx=5, pady=5)
        self.prod = ttk.Combobox(self, values=self.values, width=40)
        self.prod.grid(row=0, column=2)

        self.logger.debug("Line Widget leave constructor")
Пример #9
0
    def __init__(self, container, height=300, width=500, scrolling=False, *args, **kwargs):

        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("enter constructor")
        super().__init__(container, *args, **kwargs)

        self.canvas = tk.Canvas(self, height=height, width=width)
        self.scrollwindow = tk.Frame(self.canvas)

        self.canvas.create_window((0, 0), window=self.scrollwindow, anchor="nw")


        self.canvas.pack(side="left", fill="both", expand=True)

        if scrolling:
            scrollbar = tk.Scrollbar(self, orient="vertical", command=self.canvas.yview)
            self.canvas.configure(yscrollcommand=scrollbar.set)
            self.canvas.configure(yscrollincrement='20')
            scrollbar.pack(side="right", fill="y")

            self.scrollwindow.bind("<Configure>", self.configure_window)
            self.scrollwindow.bind("<Enter>", self.enter_handler)
            self.scrollwindow.bind("<Leave>", self.leave_handler)
            self.scrollwindow.bind('<Button-4>', self.mouse_wheel)
            self.scrollwindow.bind('<Button-5>', self.mouse_wheel)

        self.canvas.focus_set()
        self.logger.debug("leave constructor")
Пример #10
0
    def __init__(self, master, height=700, width=1000, **kwargs):

        super().__init__(master, **kwargs)
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug("enter constructor")

        self.master = master
        self.width = width
        self.height = height
        self.btn_frame = tk.LabelFrame(self.master,
                                       height=height,
                                       width=20,
                                       bd=1)
        self.wid_frame = tk.LabelFrame(self.master,
                                       height=height,
                                       width=width,
                                       bd=1)

        self.wid_frame.grid(row=1, column=0)
        self.btn_frame.grid(row=0, column=0, sticky=tk.W)

        self.frame_list = []
        self.frame_index = 0

        self.logger.debug("leave constructor")
Пример #11
0
    def __init__(self, notebook):
        self.logger = Logger(self, Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)
        super().__init__(notebook, notebook.IMPORT_FRAME, 'RawImport')

        self.add_title('Import Setup Form')
        self.add_dir_browser()
        self.add_import_btn()
Пример #12
0
    def __init__(self, parent, lineno):
        self.logger = Logger(self, Logger.INFO)
        self.logger.debug("constructor")
        tkinter.Frame.__init__(self, parent)

        self.data_store = DataStore.get_instance()
        self.index = lineno

        self.name = "Hole %d" % (lineno + 1)
        self.line_name = tkinter.Label(self, text=self.name, width=12)
        self.line_name.grid(row=lineno + 1, column=0, sticky=tkinter.W)

        self.inter_ctl = tkinter.Entry(self,
                                       width=5,
                                       validate="focusout",
                                       validatecommand=self.change_interval)
        self.inter_ctl.bind('<Return>', self.change_interval)
        self.inter_ctl.bind('<Tab>', self.change_interval)
        self.inter_ctl.grid(row=lineno + 1, column=1)

        self.note_ctl_txt = tkinter.StringVar()
        self.note_ctl = tkinter.Label(self,
                                      textvariable=self.note_ctl_txt,
                                      width=12)
        self.note_ctl.grid(row=lineno + 1, column=2)

        self.freq_ctl_txt = tkinter.StringVar()
        self.freq_ctl = tkinter.Label(self,
                                      textvariable=self.freq_ctl_txt,
                                      width=12)
        self.freq_ctl.grid(row=lineno + 1, column=3)

        self.hole_ctl = HoleSizeWidgit(self, lineno)
        self.hole_ctl.config(padx=25)
        self.hole_ctl.grid(row=lineno + 1, column=4)

        self.locat_ctl_txt = tkinter.StringVar()
        self.locat_ctl = tkinter.Label(self,
                                       textvariable=self.locat_ctl_txt,
                                       width=12)
        self.locat_ctl.grid(row=lineno + 1, column=5)

        self.diff_ctl_txt = tkinter.StringVar()
        self.diff_ctl = tkinter.Label(self,
                                      textvariable=self.diff_ctl_txt,
                                      width=12)
        self.diff_ctl.grid(row=lineno + 1, column=6)

        self.cutoff_ctl_txt = tkinter.StringVar()
        self.cutoff_ctl = tkinter.Label(self,
                                        textvariable=self.cutoff_ctl_txt,
                                        width=12)
        self.cutoff_ctl.grid(row=lineno + 1, column=7)

        self.set_state()

        self.logger.debug("end constructor")
Пример #13
0
    def __init__(self):
        self.logger = Logger(self, Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)

        self.master = tk.Tk()
        self.master.geometry('1000x800')
        #self.master.resizable(0, 0)
        self.master.wm_title("Accounting")

        MainNotebook(self.master)
Пример #14
0
    def __init__(self,
                 master,
                 form,
                 disable_select=False,
                 disable_new=False,
                 *args,
                 **kargs):
        '''
        master = The frame to bind the widgets to.
        form = Name of the form to bind the events to.
        '''
        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("NotesBox enter constructor")

        super().__init__(master, *args, **kargs)

        row = 0
        col = 0

        self.form = form
        self.events = EventHandler.get_instance()
        tk.Button(self, text='Prev', command=self.prev_btn).grid(row=row,
                                                                 column=col,
                                                                 padx=5,
                                                                 pady=5)
        col += 1
        tk.Button(self, text='Next', command=self.next_btn).grid(row=row,
                                                                 column=col,
                                                                 padx=5,
                                                                 pady=5)
        if not disable_select:
            col += 1
            tk.Button(self, text='Select',
                      command=self.select_btn).grid(row=row,
                                                    column=col,
                                                    padx=5,
                                                    pady=5)
        if not disable_new:
            col += 1
            tk.Button(self, text='New', command=self.new_btn).grid(row=row,
                                                                   column=col,
                                                                   padx=5,
                                                                   pady=5)
        col += 1
        tk.Button(self, text='Save', command=self.save_btn).grid(row=row,
                                                                 column=col,
                                                                 padx=5,
                                                                 pady=5)
        col += 1
        tk.Button(self, text='Delete',
                  command=self.delete_btn).grid(row=row,
                                                column=col,
                                                padx=5,
                                                pady=5)
Пример #15
0
    def __init__(self, master, names=None, height=700, width=1000):
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug("enter constructor")
        super().__init__(master, height=height, width=width)

        self.names = names
        if not names is None:
            for name in self.names:
                self.add_tab(name)

        self.form_class = []
Пример #16
0
    def __init__(self, master=None):
        self.logger = Logger(self, Logger.INFO)
        self.logger.debug(sys._getframe().f_code.co_name)

        tkinter.Frame.__init__(self, master)
        self.master = master
        self.master.protocol("WM_DELETE_WINDOW", self.close_window)

        self.general_params = tkinter.LabelFrame(self.master, text="General Parameters")
        self.general_params.pack()
        self.output_params = tkinter.LabelFrame(self.master, text="Output Parameters")
        self.output_params.pack(fill="both", expand="yes")

        # set up some default values
        #self.current_file_name = os.path.join(os.getcwd(), "untitled.wis")

        self.data = DataStore.get_instance()
        self.logger.debug("data store: %s"%(str(self.data)))

        self.calc = Calculator()
        self.upper_frame = UpperFrame(self.general_params)
        self.lower_frame = LowerFrame(self.output_params)

        menu = tkinter.Menu(self.master, tearoff=0)
        self.master.config(menu=menu)
        #self.master.geometry("750x450")

        fileMenu = tkinter.Menu(menu, tearoff=0)
        fileMenu.add_command(label="Load", command=self.loadCommand)
        fileMenu.add_command(label="Save", command=self.saveCommand)
        fileMenu.add_command(label="Save As", command=self.saveasCommand)
        fileMenu.add_command(label="Export", command=self.exportCommand)
        fileMenu.add_separator()
        fileMenu.add_command(label="Quit", command=self.close_window)
        menu.add_cascade(label="File", menu=fileMenu)

        settingsMenu = tkinter.Menu(menu, tearoff=0)
        settingsMenu.add_command(label="Constants", command=self.constCommand)
        settingsMenu.add_command(label="Embouchure", command=self.emboCommand)
        settingsMenu.add_command(label="Notes", command=self.notesCommand)
        menu.add_cascade(label="Settings", menu=settingsMenu)

        editMenu = tkinter.Menu(menu, tearoff=0)
        editMenu.add_command(label="Help", command=self.helpCommand)
        editMenu.add_command(label="About", command=self.aboutCommand)
        editMenu.add_command(label="Dump", command=self.dumpInternalData)
        menu.add_cascade(label="Help", menu=editMenu)

        tkinter.Label(self.master, text="Tilbury Woodwinds Whistle Calculator",
                    font=("Helvetica", 14)).pack()

        self.upper_frame.create_frame()
        self.lower_frame.update_frame()
Пример #17
0
 def Configure(self, argv):
     self.args = argv
     self.messagePrinter = Logger()
     
     self.scriptPath, self.scriptExtension = os.path.splitext(argv[0])
     self.scriptPath, self.scriptName = os.path.split(self.scriptPath)
     
     self.argparser.parse_args(args=argv[1:], namespace=self)
     
     self.messagePrinter.isDbgEnabled = self.debugMessages
     self.messagePrinter.isInfoEnabled = self.verbose
     self.messagePrinter.isErrEnabled = not self.silenceErrors
     
     if self.scriptIni is None:
         iniPath = ''
         if self.scriptPath is not None:
             iniPath = self.scriptPath
         self.scriptIni = toPosixPath(os.path.join(iniPath, '{0}.ini'.format(self.scriptName)))
     
     self.parser = configparser.ConfigParser(allow_no_value = True) # see https://docs.python.org/2/library/configparser.html
     self.parser.optionxform = str # make case-sensitive as per https://docs.python.org/2/library/configparser.html
     
     self.isConfigured = True
     
     if os.path.exists(self.scriptIni):
         self.parser.read(self.scriptIni)
     elif os.path.exists(os.path.join(self.scriptPath, self.scriptIni)):
         self.parser.read(os.path.join(self.scriptPath, self.scriptIni))
     else:
         msg = "No configuration file found. Searched, current directory and script directory directory for {0}.".format(self.scriptIni)
         self.messagePrinter.error(msg)
         self.isConfigured = False
         
         self.databaseFilename = ':memory:'
         self.sourcePath = './'
         return
     
     try:
         if self.databaseFilename is None:
             self.databaseFilename = self.parser.get("Output", "DatabaseFilename")
     except:
         self.databaseFilename = ':memory:'
     
     try:
         if self.sourcePath is None:
             self.sourcePath = self.parser.get("Paths","SourceRoot")
             # Make the read SourceRoot path relative to the INI file's path.
             if self.isConfigured:
                 iniPath, iniFilename = os.path.split(self.scriptIni)
                 self.sourcePath = toPosixPath(os.path.normpath(os.path.join(iniPath, self.sourcePath)))
                 print('source-path: {0}'.format(self.sourcePath))
     except:
         self.sourcePath = './'
Пример #18
0
    def __init__(self,
                 master,
                 table,
                 column,
                 height=20,
                 width=60,
                 *args,
                 **kargs):
        '''
        master = the frame to bind this frame to
        name   = the text of the label
        table  = the name of the database table that is associated with this widget
        column = the name of the column this widget associates with
        lw = label width
        cw = control width
        ch = control height
        '''
        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("NotesBox enter constructor")

        super().__init__(master, *args, **kargs)

        self.column = column
        self.table = table

        frame2 = tk.Frame(self, bd=1, relief=tk.RIDGE)
        frame2.grid(row=0, column=1)
        self.content = tk.Text(frame2,
                               height=height,
                               width=width,
                               wrap=tk.NONE)
        self.content.insert(tk.END, '')

        # see https://www.homeandlearn.uk/tkinter-scrollbars.html
        self.vsb = tk.Scrollbar(frame2, orient=tk.VERTICAL)
        self.vsb.config(command=self.content.yview)
        self.content.config(yscrollcommand=self.vsb.set)
        self.vsb.pack(side=tk.RIGHT, fill=tk.Y)

        self.hsb = tk.Scrollbar(frame2, orient=tk.HORIZONTAL)
        self.hsb.config(command=self.content.xview)
        self.content.config(xscrollcommand=self.hsb.set)
        self.hsb.pack(side=tk.BOTTOM, fill=tk.X)

        self.content.pack(side=tk.LEFT)

        self.row = {
            'table': self.table,
            'column': self.column,
            'self': self,
            'hasid': None
        }
        self.logger.debug("NotesBox leave constructor")
Пример #19
0
    def __init__(self, master, table, empty_ok=False):
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug("Setup Dialog start constructor")

        self.master = master
        self.table = table
        self.empty_ok = empty_ok
        self.data = Database.get_instance()
        self.events = EventHandler.get_instance()

        self.id_list = self.get_id_list()
        self.crnt_index = 0
Пример #20
0
    def __init__(self, notebook):
        self.logger = Logger(self, Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)
        super().__init__(notebook, notebook.CUSTOMERS_FRAME, 'Customer')

        self.add_title('Customers Setup Form')
        self.add_dynamic_label('Date', 'date_created', width=20)
        self.add_entry('Name', 'name', str)
        self.add_entry('Address1', 'address1', str)
        self.add_entry('Address2', 'address2', str)

        self.add_entry('City', 'city', str, inc_row=False, span=1, width=20)
        self.add_entry('State', 'state', str, width=20, span=1)

        self.add_entry('Zip Code', 'zip', str, width=20, span=1, inc_row=False)
        self.add_combo('Country', 'Country', 'country_ID', width=20)

        self.add_entry('Email',
                       'email_address',
                       str,
                       width=20,
                       span=1,
                       inc_row=False)
        self.add_combo('Email Status',
                       'EmailStatus',
                       'email_status_ID',
                       width=20)

        self.add_entry('Phone',
                       'phone_number',
                       str,
                       width=20,
                       span=1,
                       inc_row=False)
        self.add_combo('Phone Status',
                       'PhoneStatus',
                       'phone_status_ID',
                       width=20)

        self.add_entry('Web Site', 'web_site', str, width=20, inc_row=False)
        self.add_combo('Class', 'ContactClass', 'class_ID', width=20)

        self.add_entry('Description', 'description', str)

        self.add_text('Notes', 'notes', height=10)

        self.add_button('Prev')
        self.add_button('Next')
        self.add_button('Select')
        self.add_button('New')
        self.add_button('Save')
        self.add_button('Delete')
Пример #21
0
    def __init__(self, master, title, uuid, *args, **kargs):
        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("enter constructor")

        super().__init__(master, *args, **kargs)
        self.configure(width=10)
        self.configure(command=self.btn_cmd)
        self.configure(text=title)
        self.last_state = True
        self.title = title
        self.uuid = uuid
        self.events = EventHandler.get_instance()
        self.logger.debug("leave constructor")
Пример #22
0
    def __init__(self, master):
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)
        super().__init__(master,
                         ['Home', 'Sales', 'Purchase', 'Reports', 'Setup'])

        MainHomeForm(self)
        MainSalesForm(self)
        MainPurchaseForm(self)
        MainReportsForm(self)
        MainSetupForm(self)

        self.show_frame(self.HOME_FRAME)
Пример #23
0
    def __init__(self):
        # constant data
        self.logger = Logger(self, Logger.INFO)
        self.logger.debug("enter constructor")
        #self.configuration = Configuration.get_instance()
        self.data = DataStore.get_instance()
        self.logger.debug("end constructor")
        register_event("CALCULATE_EVENT", self.do_calc)

        # self.isound = self.data.get_vsound_in()
        # self.msound = self.data.get_vsound_mm()

        self.max_loop = 12
        self.max_delta = 0.0001
Пример #24
0
    def __init__(self, master, table, thing=None):

        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug('SelectItem enter constructor')
        self.table = table
        if thing is None:
            self.thing = 'Item'
        else:
            self.thing = thing

        self.item_id = -1
        super().__init__(master)
        self.wait_window(self)
        self.logger.debug('SelectItem leave constructor')
Пример #25
0
    def __init__(self, parent):
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug("enter constructor")

        self.top = tk.Toplevel(parent)
        self.tx = tk.Text(self.top, height=25, width=80)
        self.sb = tk.Scrollbar(self.top)
        self.sb.pack(side=tk.RIGHT,fill=tk.Y)
        self.tx.pack(side=tk.LEFT)
        self.sb.config(command=self.tx.yview)
        self.tx.config(yscrollcommand=self.sb.set)
        self.tx.insert(tk.END, help_text)
        self.tx.config(state='disabled')

        self.logger.debug("leave constructor")
Пример #26
0
    def __init__(self):

        # gate the accress to __init__()
        if Database.__instance != None:
            raise Exception(
                "Database class is a singleton. Use get_instance() instead.")
        else:
            Database.__instance = self

        # Continue with init exactly once.
        self.logger = Logger(self, Logger.DEBUG)
        self.logger.debug("enter constructor")
        self.data_version = '1.0'
        self.database_name = 'shop-timer.db'
        self.open()
        self.logger.debug("leave constructor")
Пример #27
0
    def __init__(self, master):
        self.logger = Logger(self, level=Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)
        super().__init__(master, ['Business', 'Customers', 'Vendors', 'Accounts',
                                  'Inventory', 'Sales', 'Purchase', 'Import'])

        SetupBusinessForm(self)
        SetupCustomersForm(self)
        SetupVendorsForm(self)
        SetupAccountsForm(self)
        SetupInventoryForm(self)
        SetupSalesForm(self)
        SetupPurchaseForm(self)
        SetupImportForm(self)

        self.show_frame(self.BUSINESS_FRAME)
Пример #28
0
    def __init__(self, master):
        self.logger = Logger(self, Logger.INFO)
        self.logger.debug("constructor")

        self.data_store = DataStore.get_instance()
        self.master = master
        #self.line_data = []
        self.line_widgits = []
        register_event('UPDATE_LOWER_FRAME_EVENT', self.update_frame)
        register_event('UPDATE_LINES_EVENT', self.set_state)
        register_event('UPDATE_NOTES_EVENT', self.update_notes)
        register_event('CHANGE_UNITS_EVENT', self.change_units)

        tkinter.Label(self.master, width=12,
                      text="Hole").grid(row=0, column=0, sticky=tkinter.W)
        tkinter.Label(self.master, width=5,
                      text="Interval").grid(row=0, column=1, sticky=tkinter.W)
        tkinter.Label(self.master, width=10,
                      text="Note").grid(row=0, column=2, sticky=tkinter.W)
        tkinter.Label(self.master, width=10,
                      text="Frequency").grid(row=0, column=3, sticky=tkinter.W)
        tkinter.Label(self.master, width=18,
                      text="Hole Size").grid(row=0, column=4, sticky=tkinter.W)
        tkinter.Label(self.master, width=11,
                      text="Hole Location").grid(row=0,
                                                 column=5,
                                                 sticky=tkinter.W)
        tkinter.Label(self.master, width=12,
                      text="Hole Diff").grid(row=0, column=6, sticky=tkinter.W)
        tkinter.Label(self.master, width=12,
                      text="Cutoff Freq").grid(row=0,
                                               column=7,
                                               sticky=tkinter.W)

        # create all of the lines
        for n in range(12):
            lw = LineWidgit(self.master, n)
            self.line_widgits.append(lw)

        for idx in range(self.data_store.get_number_holes()):
            self.line_widgits[idx].grid(row=idx + 1,
                                        column=0,
                                        columnspan=8,
                                        sticky=tkinter.W)
            self.line_widgits[idx].set_state()

        self.logger.debug("end constructor")
Пример #29
0
    def __init__(self):
        self.logger = Logger(self, Logger.DEBUG)
        self.logger.debug(sys._getframe().f_code.co_name)

        self.master = tk.Tk()
        self.master.wm_title("Accounting")

        self.data = Database.get_instance()

        notebook = NoteBk(self.master, height=700, width=1050)
        notebook.add_tab('Sales', DummyClass)
        notebook.add_tab('Purchase', DummyClass)
        notebook.add_tab('Reports', DummyClass)
        notebook.add_tab('Setup', SetupNotebook)

        # activate a frame for initial display
        notebook.show_frame('Sales')
Пример #30
0
    def __init__(self, master, form, text=None, *args, **kargs):
        '''
        master = The frame to bind the widgets to.
        form = Name of the form to bind the events to.
        '''
        self.logger = Logger(self, level=Logger.INFO)
        self.logger.debug("NotesBox enter constructor")

        super().__init__(master, *args, **kargs)

        self.form = form
        self.name = text.lower()
        self.events = EventHandler.get_instance()
        tk.Button(self, text=text, command=self.btn_callback).grid(row=1,
                                                                   column=2,
                                                                   padx=5,
                                                                   pady=5)
        self.logger.debug("NotesBox leave constructor")