def add_window(self): #Create New Window Frame = Toplevel() Frame.title('Another Window') Date_label = Label(Frame, text='Date:') Name_label = Label(Frame, text='Name:') Transaction_Label = Label(Frame, text='Transaction:') Description_Label = Label(Frame, text='Description:') Date_label.grid(column=0, row=0) Name_label.grid(column=0, row=1) Transaction_Label.grid(column=0, row=2) Description_Label.grid(column=0, row=3) self.Date_Entry = Entry(Frame) self.Name_Entry = Entry(Frame) self.Transaction_Entry = Entry(Frame) self.Description_Entry = Entry(Frame) self.Date_Entry.grid(column=1, row=0) self.Name_Entry.grid(column=1, row=1) self.Transaction_Entry.grid(column=1, row=2) self.Description_Entry.grid(column=1, row=3) Submit = Button(Frame, text='Submit', command=self.submit) Submit.grid(column=1, row=5, pady=20) self.r = tk.IntVar() RadioLayer = LabelFrame(Frame) RadioLayer.grid(column=0, row=6) Operation = [('Income', 1), ('Expense', -1)] for text, mode in Operation: #Income or Expense color coding (Not yet included), also a way to prevent accident listing of whats income and expense Radiobutton(RadioLayer, text=text, variable=self.r, value=mode).pack() self.Category = tk.StringVar() dropmenu = OptionMenu( Frame, self.Category, 'Income', 'Food', 'Utility', 'Subscriptions') #Allows to select which type of expense dropmenu.grid(column=1, row=6) Frame.geometry('250x250')
def add_window(): Frame = Toplevel() Frame.title('Another Window') Date_label = Label(Frame, text='Date:') Name_label = Label(Frame, text='Name:') Transaction_Label = Label(Frame, text='Transaction:') Category_Label = Label(Frame, text='Category:') Description_Label = Label(Frame, text='Description:') Date_label.grid(column=0, row=0) Name_label.grid(column=0, row=1) Transaction_Label.grid(column=0, row=2) Category_Label.grid(column=0, row=3) Description_Label.grid(column=0, row=4) Date_Entry = Entry(Frame) Name_Entry = Entry(Frame) Transaction_Label = Entry(Frame) Category_Label = Entry(Frame) Description_Label = Entry(Frame) Date_Entry.grid(column=1, row=0) Name_Entry.grid(column=1, row=1) Transaction_Label.grid(column=1, row=2) Category_Label.grid(column=1, row=3) Description_Label.grid(column=1, row=4) Submit = Button(Frame, text='Submit', command=submit) Submit.grid(column=1, row=5, pady=20) r = tk.IntVar() RadioLayer = LabelFrame(Frame) RadioLayer.grid(column=0, row=6) Operation = [('Income', 1), ('Expense', -1)] for text, mode in Operation: Radiobutton(RadioLayer, text=text, variable=r, value=mode).pack() Frame.geometry('250x250')
def __init__(self, poetry_root: tk.Frame) -> None: """Initialize the Poetry App along with its gadgets""" # Read the dictionary and poetry forms files self.word_pronunciations = poetry_reader.read_pronouncing_dictionary( open(DICTIONARY_FILENAME, 'r', encoding="utf-8")) self.poetry_patterns = poetry_reader.read_poetry_form_descriptions( open(POETRY_FORMS_FILENAME, 'r', encoding="utf-8")) # Build the user interface poetry_root.title("Pure Poetry") screen_width = poetry_root.winfo_screenwidth() screen_height = poetry_root.winfo_screenheight() width, height = screen_width * 0.5, screen_height * 0.5 self.width, self.height = width, height # calculate x and y coordinates for the Tk root window x = (screen_width / 2) - (width / 2) y = (screen_height / 2) - (height / 2) self.annotation_height = int(self.height / 50) # set the dimensions of the screen and where it is placed poetry_root.geometry('%dx%d+%d+%d' % (width, height, x, y)) self.master = poetry_root tk.Frame.__init__(self, poetry_root) self.scroll_frame = ScrollFrame(self) self.scroll_frame.width = width self.scroll_frame.height = height self.create_screen_components() # pack scrollFrame itself self.scroll_frame.pack(side="top", fill="both", expand=True, padx=(5, 0), pady=(5, 0))