Exemplo n.º 1
0
 def createPropWidgets(self):
     self.prop_class_label = tk.Label(self.newprop_frame, text = "Property for Class:")
     self.prop_class_label.grid(sticky=tk.NW,row=0,column=0)        
     self.prop_class_menubutton = tk.Menubutton(self.newprop_frame, relief="raised",textvariable=self.prop_class_menuvar, state="disabled")
     self.prop_class_menubutton.grid(sticky=tk.NW,row=0,column=1)        
     self.prop_class_menu = tk.Menu(self.prop_class_menubutton)
     self.prop_class_menubutton["menu"] = self.prop_class_menu        
     
     self.prop_name_label = tk.Label(self.newprop_frame, text = "Enter New Property Name:")
     self.prop_name_label.grid(sticky=tk.NW,row=1,column=0)        
     self.prop_name_entry =tk.Entry(self.newprop_frame,textvariable=self.prop_name_var,state="disabled")
     self.prop_name_entry.grid(sticky=tk.NW,row=1,column=1)
     
     self.prop_type_label = tk.Label(self.newprop_frame, text = "Property Type:")
     self.prop_type_label.grid(sticky=tk.NW,row=2,column=0)
     self.prop_type_menubutton = tk.Menubutton(self.newprop_frame, relief="raised",textvariable=self.prop_type_menuvar, state="disabled")
     self.prop_type_menubutton.grid(sticky=tk.NW,row=2,column=1)
     self.prop_type_menu = tk.Menu(self.prop_type_menubutton)
     self.prop_type_menubutton["menu"] = self.prop_type_menu
     
     self.linkclass_label = tk.Label(self.newprop_frame, text = "Link to Class:")
     self.linkclass_menubutton = tk.Menubutton(self.newprop_frame, relief="raised",textvariable=self.linkclass_menuvar)
     self.linkclass_menu = tk.Menu(self.linkclass_menubutton)
     self.linkclass_menubutton["menu"] = self.linkclass_menu
     
     self.addprop_button = tk.Button(self.newprop_frame, text="Add New Property",state="disabled",command=self.addNewProperty)
     self.addprop_button.grid(sticky=tk.NW,row=3,column=0)
Exemplo n.º 2
0
 def addMenus(self):
     # character menu options are added dynamically by CharacterDetector, so we pass this into that
     self.characterMenu = tk.Menubutton(text="Character...", background="black", fg="white", borderwidth="1",
                                   highlightbackground="black", highlightthickness="1",
                                   activebackground="gray25", activeforeground="white")
     self.characterMenu.grid(row="5", column="2")
     self.characterMenu.menu = tk.Menu(self.characterMenu, tearoff=False)
     self.characterMenu["menu"] = self.characterMenu.menu
     self.characterDetector = logreader.CharacterDetector(self, self.characterMenu)
     
     # Set up file menu options
     self.mainMenu = tk.Menubutton(text="File...", background="black", fg="white", borderwidth="1",
                                   highlightbackground="black", highlightthickness="1",
                                   activebackground="gray25", activeforeground="white")
     self.mainMenu.grid(row="5", column="1")
     self.mainMenu.menu = tk.Menu(self.mainMenu, tearoff=False)
     self.mainMenu["menu"] = self.mainMenu.menu
     self.mainMenu.menu.add_command(label="Edit Profile Settings", command=lambda: settingsWindow.SettingsWindow(self))
     
     # add all the profiles from settings into the menu
     self.profileMenu = tk.Menu(self.mainMenu, tearoff=False)
     settings.initializeMenu(self)
     
     self.mainMenu.menu.add_cascade(label="Profile", menu=self.profileMenu)
     self.mainMenu.menu.add_separator()
     self.mainMenu.menu.add_command(label="Fleet Mode", command=lambda: fleetConnectionWindow.FleetWindow(self))
     self.mainMenu.menu.add_separator()
     self.mainMenu.menu.add_command(label="Simulate Input", command=lambda: simulationWindow.SimulationWindow(self))
     getLogFilePath = lambda: tk.filedialog.askopenfilename(initialdir=self.characterDetector.path, title="Select log file")
     self.mainMenu.menu.add_command(label="Playback Log", command=lambda: self.characterDetector.playbackLog(getLogFilePath()))
     self.mainMenu.menu.add_separator()
     self.mainMenu.menu.add_command(label="Quit", command=self.quitEvent)
Exemplo n.º 3
0
 def createWidgets(self):
     self.cv_button = tk.Checkbutton(self.optargs_frame,text="CVData",variable=self.cv_var,onvalue="CVData",offvalue="")
     self.cv_button.grid(sticky=tk.NW,row=1,column=1)
     
     #self.avs_button = tk.Checkbutton(self.optargs_frame,text="AVSData",variable=self.avs_var,onvalue="AVSData",offvalue="")
     #self.avs_button.grid(sticky=tk.NW,row=2,column=1)
     self.avs_radio = tk.Radiobutton(self.optargs_frame,value="AVSData",variable=self.avs_var,text="AVSData")
     self.avs_radio.grid(sticky=tk.W,row=2,column=1)        
     self.intlavs_radio = tk.Radiobutton(self.optargs_frame,value="IntlAVSData",variable=self.avs_var,text="IntlAVSData")
     self.intlavs_radio.grid(sticky=tk.W,row=3,column=1)        
     
     self.threed_button = tk.Checkbutton(self.optargs_frame,text="3DSecure",variable=self.threed_var,onvalue="3DSecure",offvalue="")
     self.threed_button.grid(sticky=tk.NW,row=4,column=1)
     
     self.level2_menubutton = tk.Menubutton(self.optargs_frame,relief="raised",textvariable=self.level2_menuvar, state="active")
     self.level2_menubutton.grid(sticky=tk.NW,row=5,column=1)
     self.level2_menu = tk.Menu(self.level2_menubutton)
     self.level2_menubutton["menu"] = self.level2_menu
     for item in globalvars.LEVEL2ARGS:
         self.level2_menu.add_checkbutton(label=item,variable=self.level2_menuitemvar,onvalue=item,offvalue="", command=lambda : self.updateButton("level2"))
         
     self.billpay_menubutton = tk.Menubutton(self.optargs_frame,relief="raised",textvariable=self.billpay_menuvar, state="active")
     self.billpay_menubutton.grid(sticky=tk.NW,row=6,column=1)
     self.billpay_menu = tk.Menu(self.billpay_menubutton)
     self.billpay_menubutton["menu"] = self.billpay_menu
     for item in globalvars.BILLPAYARGS:
         self.billpay_menu.add_checkbutton(label=item,variable=self.billpay_menuitemvar,onvalue=item,offvalue="", command=lambda : self.updateButton("billpay"))        
Exemplo n.º 4
0
 def createWidgets(self):        
     self.selectclass_menubutton = tk.Menubutton(self.viewrec_frame,relief="raised",textvariable=self.selectclass_menuvar)
     self.selectclass_menubutton.grid(sticky=tk.N,row=0,column=0)
     self.selectclass_menu = tk.Menu(self.selectclass_menubutton)
     self.selectclass_menubutton["menu"] = self.selectclass_menu
     
     self.getcluster_button = tk.Button(self.viewrec_frame, textvariable=self.getcluster_var,state="disabled",command=self.getRecords)
     self.getcluster_button.grid(sticky=tk.N,row=0,column=1)
     
     self.record_menubutton = tk.Menubutton(self.recordbyid_frame,relief="raised",textvariable=self.record_menuvar)        
     self.record_menu = tk.Menu(self.record_menubutton)
     self.record_menubutton["menu"] = self.record_menu
     
     self.displayrecord_button = tk.Button(self.recordbyid_frame, textvariable=self.displayrecord_var,command=self.displayRecord)
     
     self.extendrecord_button = tk.Checkbutton(self.recordbyid_frame,onvalue=1,text="Show Extended Record",variable=self.extendrecord_var,offvalue=0)
     
     self.deleterecord_button = tk.Button(self.recordbyid_frame,text="Delete Record", command =self.deleteRecord)
     
     self.query_entry = tk.Entry(self.recordbyquery_frame,textvariable=self.query_entryvar,width=40)
     self.query_button = tk.Button(self.recordbyquery_frame,text="Query Records",command=self.queryRecords)
     
     self.showall_button = tk.Button(self.recordbyquery_frame,text="Show All Records of Class",command=self.showAllRecords)
     
     self.canvasscroll = tk.Scrollbar(self.viewrec_frame, orient=tk.VERTICAL)        
     self.recorddisplay_canvas = tk.Canvas(self.viewrec_frame,relief=tk.RIDGE, bd=2,height=400,cursor="xterm",yscrollcommand=self.canvasscroll.set)               
     self.canvasscroll.config(command=self.recorddisplay_canvas.yview)
     self.recorddisplay_canvas.bind("<Button-1>",self.startHighlight)        
Exemplo n.º 5
0
    def __init__(self,
                 clide,
                 activebackground="#4B6EAF",
                 textColor="white",
                 *args,
                 **kwargs):
        tkinter.Frame.__init__(self, clide, *args, **kwargs)

        fileButton = tkinter.Menubutton(self,
                                        text="File",
                                        bg=self["background"],
                                        activebackground=activebackground,
                                        foreground=textColor,
                                        underline=0)
        fileButton.pack(side=tkinter.LEFT)
        fileMenu = tkinter.Menu(fileButton, tearoff=0)
        fileMenu.add_command(label="New", command=clide.new)
        fileMenu.add_command(label="Save", command=clide.save)
        fileMenu.add_command(label="Open", command=clide.open)
        fileButton["menu"] = fileMenu

        editButton = tkinter.Menubutton(self,
                                        text="Edit",
                                        bg=self["background"],
                                        activebackground=activebackground,
                                        foreground=textColor)
        editButton.pack(side=tkinter.LEFT)
        editMenu = tkinter.Menu(editButton, tearoff=0)
        editMenu.add_command(label="Find", command=clide.find)
        editButton["menu"] = editMenu

        self._stopImage = tkinter.PhotoImage(file="stop.png")
        stopButton = tkinter.Button(self,
                                    image=self._stopImage,
                                    borderwidth=0,
                                    bg=self["background"],
                                    command=clide.terminal.close)
        stopButton.pack(side=tkinter.RIGHT, padx=5)

        self._debugImage = tkinter.PhotoImage(file="debug.png")
        debugButton = tkinter.Button(self,
                                     image=self._debugImage,
                                     borderwidth=0,
                                     bg=self["background"],
                                     command=clide.debugLisp)
        debugButton.pack(side=tkinter.RIGHT, padx=5)

        self._runImage = tkinter.PhotoImage(file="run.png")
        runButton = tkinter.Button(self,
                                   image=self._runImage,
                                   borderwidth=0,
                                   bg=self["background"],
                                   command=clide.runLisp)
        runButton.pack(side=tkinter.RIGHT, padx=5)

        try:
            self.master.config(menu=self)
        except AttributeError:
            self.master.tk.call(clide, "config", "-menu", self)
Exemplo n.º 6
0
def New_window_B():  # function similar to A
    def nwB_get():

        #B=plants("B",0,0,[])
        B.species = sp.get()
        B.amount = am.get()
        B.grow = rr.get()
        if Item3.get() == "C":
            B.grasseater.append(Item3.get())
        if Item4.get() == "D":
            B.grasseater.append(Item4.get())
        if Item5.get() == "E":
            B.grasseater.append(Item5.get())
        print(B.species, "amount:", B.amount, "growing rate:", B.grow,
              "grass eater:", B.grasseater)

    def nwB_quit():
        nwB.destroy()

    nwB = tkinter.Toplevel()
    tkinter.Label(nwB, text="species:").grid(row=0, column=0)
    content = tkinter.StringVar(value="name")

    sp = tkinter.Entry(nwB, bd=5, textvariable=content)
    sp.grid(row=0, column=1)

    tkinter.Label(nwB, text="amount:").grid(row=1, column=0)
    am = tkinter.Entry(nwB, bd=5, textvariable=tkinter.IntVar(value=0))
    am.grid(row=1, column=1)

    tkinter.Label(nwB, text="prey:", state="disabled").grid(row=2, column=0)
    py = tkinter.Menubutton(nwB, text="choose:", state="disabled")
    py.grid(row=2, column=1)
    tkinter.Label(nwB, text="predator:").grid(row=3, column=0)
    pr = tkinter.Menubutton(nwB, text="choose:")
    pr.grid(row=3, column=1)
    pr.menu = tkinter.Menu(pr, tearoff=0)
    pr["menu"] = pr.menu
    Item3 = tkinter.StringVar()
    Item4 = tkinter.StringVar()
    Item5 = tkinter.StringVar()
    pr.menu.add_checkbutton(label="Herbivore C", variable=Item3, onvalue="C")
    pr.menu.add_checkbutton(label="Herbivore D", variable=Item4, onvalue="D")
    pr.menu.add_checkbutton(label="Omnivore E", variable=Item5, onvalue="E")
    tkinter.Label(nwB, text="reproduce rate:").grid(row=4, column=0)
    rr = tkinter.Spinbox(nwB, from_=90, to=110)
    rr.grid(row=4, column=1)
    tkinter.Label(nwB, text="hunting successful rate:",
                  state="disabled").grid(row=5, column=0)
    hsr = tkinter.Spinbox(nwB, from_=0, to=100, state="disabled")
    hsr.grid(row=5, column=1)
    tkinter.Button(nwB, text="Set/Update", command=nwB_get).grid(row=6,
                                                                 column=1)
    tkinter.Button(nwB, text="Cancel", command=nwB_quit).grid(row=6, column=0)

    nwB.mainloop()
def graf_frame():

    global x_data_to_menu
    global y_data_to_menu
    global extract
    extract = False

    grafframe = tkinter.Tk()
    grafframe.title('Graph options')
    grafframe.geometry('320x240')
    grafframe.minsize(320, 240)
    grafframe.maxsize(321, 241)
    grafframe.config(background='white')
    for s in range(0, 5):
        grafframe.rowconfigure(s, weight=1)
    for s in range(0, 4):
        grafframe.columnconfigure(s, weight=1)

    # menu buttons
    x_menu_button = tkinter.Menubutton(grafframe,
                                       text='X axis',
                                       relief='raised')
    x_menu_button.grid(row=1, column=0, sticky='e')
    x_menu_button.menu = tkinter.Menu(x_menu_button, tearoff=0)
    x_menu_button['menu'] = x_menu_button.menu

    y_menu_button = tkinter.Menubutton(grafframe,
                                       text='Y axis',
                                       relief='raised')
    y_menu_button.grid(row=1, column=1, sticky='w')
    y_menu_button.menu = tkinter.Menu(y_menu_button, tearoff=0)
    y_menu_button['menu'] = y_menu_button.menu

    # menu buttons -- menu import

    x_data_to_menu = tkinter.StringVar()
    y_data_to_menu = tkinter.StringVar()

    for data_to_menu in data_to_be_ploted.keys():
        data_text = data_to_menu
        val = str(data_to_be_ploted[data_to_menu])
        labl = '{}'.format(data_text)
        x_menu_button.menu.add_radiobutton(label=labl,
                                           variable=x_data_to_menu,
                                           value=val)
        y_menu_button.menu.add_radiobutton(label=labl,
                                           variable=y_data_to_menu,
                                           value=val)
    x_data_to_menu.set(str(4))
    y_data_to_menu.set(str(2))

    menu_run_button = tkinter.Button(grafframe, text='Plot graph', command=run)
    menu_run_button.grid(row=4, column=1, sticky='e')
    runwindow.destroy()
    grafframe.protocol("WM_DELETE_WINDOW", at_exit)
    grafframe.mainloop()
Exemplo n.º 8
0
    def addMenus(self):
        # character menu options are added dynamically by CharacterDetector, so we pass this into that
        self.characterMenu = tk.Menubutton(text="人物",
                                           background="black",
                                           fg="white",
                                           borderwidth="1",
                                           highlightbackground="black",
                                           highlightthickness="1",
                                           activebackground="gray25",
                                           activeforeground="white")
        self.characterMenu.grid(row="5", column="2")
        self.characterMenu.menu = tk.Menu(self.characterMenu, tearoff=False)
        self.characterMenu["menu"] = self.characterMenu.menu
        self.characterDetector = logreader.CharacterDetector(
            self, self.characterMenu)

        # Set up file menu options
        self.mainMenu = tk.Menubutton(text="文件",
                                      background="black",
                                      fg="white",
                                      borderwidth="1",
                                      highlightbackground="black",
                                      highlightthickness="1",
                                      activebackground="gray25",
                                      activeforeground="white")
        self.mainMenu.grid(row="5", column="1")
        self.mainMenu.menu = tk.Menu(self.mainMenu, tearoff=False)
        self.mainMenu["menu"] = self.mainMenu.menu
        self.mainMenu.menu.add_command(
            label="个人配置设置...",
            command=lambda: settingsWindow.SettingsWindow(self))

        # add all the profiles from settings into the menu
        self.profileMenu = tk.Menu(self.mainMenu, tearoff=False)
        settings.initializeMenu(self)

        self.mainMenu.menu.add_cascade(label="配置", menu=self.profileMenu)
        self.mainMenu.menu.add_separator()
        self.mainMenu.menu.add_command(label="清除总量/峰值", state=tk.DISABLED)
        self.mainMenu.menu.add_separator()
        self.mainMenu.menu.add_command(
            label="舰队模式",
            command=lambda: fleetConnectionWindow.FleetWindow(self))
        self.mainMenu.menu.add_separator()
        self.mainMenu.menu.add_command(
            label="开始模拟",
            command=lambda: simulationWindow.SimulationWindow(self))
        getLogFilePath = lambda: tk.filedialog.askopenfilename(
            initialdir=self.characterDetector.path, title="选择战斗记录文件")
        self.mainMenu.menu.add_command(label="回放战斗记录",
                                       command=lambda: self.characterDetector.
                                       playbackLog(getLogFilePath()))
        self.mainMenu.menu.add_separator()
        self.mainMenu.menu.add_command(label="退出", command=self.quitEvent)
Exemplo n.º 9
0
 def create_buttons(self):
     """Frame for buttons"""
     # Frames in this window
     frame_buttons = tk.Frame(self.window)
     # Buttons & menus
     menu_array = [('newexcfile', self.new_set),
                   ('saveexc', self.save_exc),
                   ('separator',''),
                   ('addcells', self.append_empty_cell),
                   ('removecells', self.delete_selected_cells)
                   # Let's leave this for next version:
                   #('separator',''),
                   #('csv_import', print),
                   #('csv_export', print)
                   ]
     #Menu button actions ---------------
     button_actions = tk.Menubutton(frame_buttons, 
                                 text=self.lng['button_exc_commands'],
                                 relief=tk.RAISED,
                                 width=10)
     menu_actions = tk.Menu(button_actions, tearoff=0)
     # Commands in this menu:
     menu_objects = {}
     for b, c in menu_array:
         if b != 'separator':
             menu_objects[b] = menu_actions.add_command( \
                 label=self.lng['button_%s' % b],
                 command=c)
         else:
             menu_objects[b] = menu_actions.add_separator()
     button_actions.configure(menu=menu_actions)
     button_actions.pack(side='left', pady=3, padx=5)
     button_load = tk.Menubutton(frame_buttons, 
                                 text=self.lng['button_load'],
                                 relief=tk.RAISED,
                                 width=10)
     menu_load = tk.Menu(button_load, tearoff=0)
     # Make public instance of menu_load. This is needed
     # so menu is accessible outside this method, and used
     # when files are saved.
     self.menu_load = menu_load
     # Populate dropdown menu
     self.create_dropdown_menu()
     # Standard exceptions
     button_load.configure(menu=menu_load)
     button_load.pack(pady=3, padx=5)
     # Menu button end --------------
     frame_buttons.pack(padx=10, pady=10)
     # Make menu_actions public, so it's accessible from
     # load_file_create_cells().
     self.menu_actions = menu_actions
Exemplo n.º 10
0
    def __init__(self, master, controller: Con.Controller, *args, **kwargs):
        tk.Frame.__init__(self, master, *args, **kwargs)

        self.parent = master
        self.controller = controller

        self.font = tf.Font(family='Helvetica', size=18, weight='bold')
        self.lightFont = tf.Font(family='Helvetica', size=15, weight='bold')

        self.mainLabel = tk.Label(self, text=Acc.mainGroup, font=self.font)
        self.mainGroupMB = tk.Menubutton(self,
                                         text=Acc.chooseMainGroup,
                                         font=self.font,
                                         bg=Acc.black,
                                         fg=Acc.white)
        self.mainGroupMenu = tk.Menu(self.mainGroupMB,
                                     tearoff=0,
                                     font=self.lightFont)
        self.mainGroupMB.config(menu=self.mainGroupMenu)
        self.mainGroupVar = tk.IntVar()

        self.subLabel = tk.Label(self, text=Acc.subGroup, font=self.font)
        self.subGroupMB = tk.Menubutton(self,
                                        text=Acc.chooseSubGroup,
                                        font=self.font,
                                        bg=Acc.black,
                                        fg=Acc.white)
        self.subGroupMenu = tk.Menu(self.subGroupMB,
                                    tearoff=0,
                                    font=self.lightFont)
        self.subGroupMB.config(menu=self.subGroupMenu)
        self.subGroupVar = tk.IntVar()

        self.kindLabel = tk.Label(self, text=Acc.kind, font=self.font)
        self.kindMB = tk.Menubutton(self,
                                    text=Acc.chooseKind,
                                    font=self.font,
                                    bg=Acc.black,
                                    fg=Acc.white)
        self.kindMenu = tk.Menu(self.kindMB, tearoff=0, font=self.lightFont)
        self.kindMB.config(menu=self.kindMenu)
        self.kindVar = tk.IntVar()

        self.choosenMain = None
        self.choosenSub = None
        self.choosenKind = None

        self.fillMainMenu()

        self.configureParts()
    def init_ui(self):
        self.config(
            background=c.COLOR_GREY,
            relief=tkc.FLAT,
            width=self.parent.winfo_width(),
            height=22,
        )
        self.menu_file = tkinter.Menubutton(self,
                                            text="File",
                                            font=utils.tk_font(),
                                            background=c.COLOR_GREY)
        self.menu_options = tkinter.Menubutton(self,
                                               text="Options",
                                               font=utils.tk_font(),
                                               background=c.COLOR_GREY)
        self.menu_label = tkinter.Label(
            self,
            text="Apogeeworks Playlist Collector",
            relief=tkc.FLAT,
            font=utils.tk_font(),
            bg=c.COLOR_BLUE,
            fg=c.COLOR_WHITE,
            height=2,
            width=27,
        )
        self.grid(
            column=0,
            row=1,
            sticky="n",
        )
        self.menu_label.pack(side=tkc.RIGHT, )
        self.menu_file.pack(side=tkc.LEFT, padx=(0, 0))
        self.menu_options.pack(side=tkc.LEFT, padx=(5, 0))
        file_menu = tkinter.Menu(self.menu_file, tearoff=0)
        self.menu_file['menu'] = file_menu

        options_menu = tkinter.Menu(self.menu_options, tearoff=0)
        self.menu_options['menu'] = options_menu

        file_menu.add_command(label="{0}{1}{2}".format("Quit", " " * 8,
                                                       "(Alt + Q)"),
                              command=self.parent.destroy)
        options_menu.add_command(label="Configure...",
                                 command=self.view_menu_config())
        options_menu.add_separator()
        options_menu.add_command(label="View Tutorial...",
                                 command=self.view_menu_tutorial())
        file_menu.bind("<<MenuSelect>>", self.menu_select_callback)

        self.update()
Exemplo n.º 12
0
    def __init__(self, root):
        self.root = root
        root.geometry("1800x800")
        super().__init__(root, bg='#706f6c')
        self.root.title("Prototype")
        self.root.grid_rowconfigure(0, weight=1)
        self.root.grid_columnconfigure(0, weight=1)

        menu_frame = tk.Frame(root)
        menu_frame.configure(width=100, height=5)
        menu_frame.pack(side='top', anchor='nw', padx=5, pady=5)

        self.membership_menu = tk.Menubutton(menu_frame,
                                             height=2,
                                             width=12,
                                             text='Memberships',
                                             underline=0,
                                             direction='below')
        self.membership_menu.grid(row=0, column=0)

        self.competitions_menu = tk.Menubutton(menu_frame,
                                               height=2,
                                               width=12,
                                               text='Competitions',
                                               underline=0,
                                               direction='below')
        self.competitions_menu.grid(row=0, column=1)

        self.graphsreports_menu = tk.Menubutton(menu_frame,
                                                height=2,
                                                width=16,
                                                text='Graphs and Reports',
                                                underline=0,
                                                direction='below')
        self.graphsreports_menu.grid(row=0, column=2)

        self.settings_menu = tk.Menubutton(menu_frame,
                                           height=2,
                                           width=10,
                                           text='Settings',
                                           underline=0,
                                           direction='below')
        self.settings_menu.grid(row=0, column=3)

        self.signout_button = tk.Button(menu_frame,
                                        height=2,
                                        width=6,
                                        text='Sign-Out',
                                        underline=0)
        self.signout_button.grid(row=0, column=4)
Exemplo n.º 13
0
 def createOtherWidgets(self):
     self.txntimestart_menubutton = tk.Menubutton(self.txn_frame,textvariable=self.txntimestart_menubuttonvar,relief="raised")
     self.txntimestart_menubutton.grid(row=2,column=2)
     self.txntimestart_menu = tk.Menu(self.txntimestart_menubutton)
     self.txntimestart_menubutton["menu"] = self.txntimestart_menu
          
     self.txntimeend_menubutton = tk.Menubutton(self.txn_frame,textvariable=self.txntimeend_menubuttonvar,relief="raised")
     self.txntimeend_menubutton.grid(row=2,column=3)
     self.txntimeend_menu = tk.Menu(self.txntimeend_menubutton)
     self.txntimeend_menubutton["menu"] = self.txntimeend_menu        
     
         
     self.capturetimestart_menubutton = tk.Menubutton(self.txn_frame,textvariable=self.capturetimestart_menubuttonvar,relief="raised")
     self.capturetimestart_menubutton.grid(row=4,column=2)
     self.capturetimestart_menu = tk.Menu(self.capturetimestart_menubutton)
     self.capturetimestart_menubutton["menu"] = self.capturetimestart_menu
     self.capturetimeend_menubutton = tk.Menubutton(self.txn_frame,textvariable=self.capturetimeend_menubuttonvar,relief="raised")
     self.capturetimeend_menubutton.grid(row=4,column=3)
     self.capturetimeend_menu = tk.Menu(self.capturetimeend_menubutton)
     self.capturetimeend_menubutton["menu"] = self.capturetimeend_menu
     
     self.querytypeor_radio = tk.Radiobutton(self.txn_frame,value="OR",variable=self.querytype_var,text="OR")
     self.querytypeor_radio.grid(row=9,column=2)        
     self.querytypeand_radio = tk.Radiobutton(self.txn_frame,value="AND",variable=self.querytype_var,text="AND")
     self.querytypeand_radio.grid(row=9,column=3)
     self.querytypeand_radio.select()
     
     self.includereltdtrue_radio = tk.Radiobutton(self.txn_frame,value="true",variable=self.includereltd_var,text="True")
     self.includereltdtrue_radio.grid(row=10,column=2)
     self.includereltdtrue_radio.select()
     self.includereltdfalse_radio = tk.Radiobutton(self.txn_frame,value="false",variable=self.includereltd_var,text="False")
     self.includereltdfalse_radio.grid(row=10,column=3)
     
     self.createquery_button = tk.Button(self.txn_frame,text="Create TMS Query")
     self.createquery_button.grid(sticky=tk.E,row=13,column=1,columnspan=2)
     
     self.credsourcetestrun_radio = tk.Radiobutton(self.txn_frame,value="testrun",variable=self.credsource_var,text="Use Authentication From Previous Test Run")
     self.credsourcetestrun_radio.grid(sticky=tk.SE,row=13,column=1,columnspan=3)
     self.credsourcetestrun_radio.select()
     self.credsourcesklist_radio = tk.Radiobutton(self.txn_frame,value="sklist",variable=self.credsource_var,text="Use Authentication From List of ServiceKeys")
     self.credsourcesklist_radio.grid(sticky=tk.NE,row=14,column=1,columnspan=3)
     
     self.sklist_menubutton = tk.Menubutton(self.txn_frame,textvariable=self.sklist_menubuttonvar,relief="raised")
     self.sklist_menu = tk.Menu(self.sklist_menubutton)
     self.sklist_menubutton["menu"] = self.sklist_menu 
     
     self.query_message = tk.Message(self.txn_frame,textvariable=self.query_messagevar,aspect=800,fg='red')
     self.query_message.grid(sticky=tk.NW,row=13,column=2,columnspan=2)          
Exemplo n.º 14
0
    def __init__(self, master, controller: Con.Controller, *args, **kwargs):
        tk.Frame.__init__(self, master, *args, **kwargs)

        self.parent = master
        self.controller = controller
        self.font = tf.Font(family='Helvetica', size=18, weight='bold')
        self.lightFont = tf.Font(family='Helvetica', size=15, weight='bold')

        self.mainLabel = tk.Label(self,
                                  text=Acc.advancePayment,
                                  font=self.font)
        self.mainMB = tk.Menubutton(self,
                                    text=Acc.chooseAdvancePayment,
                                    font=self.font,
                                    bg=Acc.black,
                                    fg=Acc.white)
        self.mainMenu = tk.Menu(self.mainMB, tearoff=0, font=self.lightFont)
        self.mainMB.config(menu=self.mainMenu)
        self.mainVar = tk.IntVar()
        self.choosenAdvancePayment = None

        self.entry = tk.Entry(self, font=self.font, justify='center')
        self.entry.bind(Acc.enterKey, self.resume)
        self.label = tk.Label(self,
                              text=Acc.money,
                              bg=Acc.green,
                              font=self.font)
        self.button = tk.Button(self,
                                relief=tk.GROOVE,
                                text=Acc.ok,
                                command=self.resume,
                                bg=Acc.green,
                                font=self.font)
        self.configureParts()
        self.fillMenu()
Exemplo n.º 15
0
    def __init__(this, parent, text, choices, choiceptr=None):
        tkinter.Frame.__init__(this, parent)

        menubutton = tkinter.Menubutton(this,
                                        text=text,
                                        indicatoron=True,
                                        borderwidth=1,
                                        relief="raised")

        menu = tkinter.Menu(menubutton, tearoff=False)
        menubutton.configure(menu=menu)
        menubutton.configure(width=constants.control_width)
        menubutton.pack(padx=10, pady=10)

        this.name = text

        this.choices = {}
        if choiceptr is not None:
            this.choices = choiceptr

        for choice in choices:
            choiceVar = None
            if choiceptr is None:
                this.choices[choice] = tkinter.IntVar(value=0)
                choiceVar = this.choices[choice]
            else:
                choiceVar = choiceptr[choice]

            menu.add_checkbutton(label=choice,
                                 variable=choiceVar,
                                 onvalue=1,
                                 offvalue=0,
                                 command=this.update)
    def __init__(self, parent, attribut, database_local):
        Frame.__init__(self, parent)

        menubutton = tk.Menubutton(self,
                                   text=attribut,
                                   indicatoron=True,
                                   borderwidth=1,
                                   relief="raised")
        menu = Menu(menubutton, tearoff=False)
        menubutton.configure(menu=menu)
        menubutton.pack(padx=10, pady=10)

        self.choices = {}
        i = 0
        if type(database_local) is str:
            self.choices[database_local] = IntVar(value=1)
            menu.add_checkbutton(label=database_local,
                                 variable=self.choices[database_local],
                                 onvalue=1,
                                 offvalue=0,
                                 command=self.printValues)

        else:
            for choice in database_local:
                if i == 0:
                    self.choices[choice] = IntVar(value=1)
                else:
                    self.choices[choice] = IntVar(value=0)
                i += 1
                menu.add_checkbutton(label=choice,
                                     variable=self.choices[choice],
                                     onvalue=1,
                                     offvalue=0,
                                     command=self.printValues)
Exemplo n.º 17
0
    def makeEditMenu(self):
        Edit_button = tkinter.Menubutton(self.mBar, text='Edit', underline=0)
        self.menuButtons['Edit'] = Edit_button
        Edit_button.pack(side=tkinter.LEFT, padx="1m")
        Edit_button.menu = tkinter.Menu(Edit_button)

        Edit_button.menu.add('command', label="Undo", command=self.undo)
        Edit_button.menu.entryconfig(1, state=tkinter.DISABLED)

        Edit_button.menu.add('command',
                             label="Add widget",
                             command=self.buildWidgetsFrame)
        Edit_button.menu.entryconfig(2)

        # and these are just for show. No "command" callbacks attached.
        Edit_button.menu.add_command(label="Cut")
        Edit_button.menu.entryconfig(3, state=tkinter.DISABLED)
        Edit_button.menu.add_command(label="Copy")
        Edit_button.menu.entryconfig(4, state=tkinter.DISABLED)
        Edit_button.menu.add_command(label="Paste")
        Edit_button.menu.entryconfig(5, state=tkinter.DISABLED)
        Edit_button.menu.add_command(label="Delete", command=self.delete)
        Edit_button.menu.entryconfig(5, state=tkinter.DISABLED)

        # set up a pointer from the file menubutton back to the file menu
        Edit_button['menu'] = Edit_button.menu
Exemplo n.º 18
0
    def dtiseries(self):

        d = {}
        num_existing = len(self.dti)
        this_row = num_existing

        tk.Label(self.dtiframe,text="Series name: DTI_").grid(row=this_row)

        text_dti = tk.Text(self.dtiframe,height=1,width=15)
        text_dti.grid(row=this_row,column=1)
        d['text_dti'] = text_dti

        # List select for acq type (TO DO: break out into own function)
        mb_acq=  tk.Menubutton ( self.dtiframe, text="Acquisition Type", relief=tk.RAISED )
        mb_acq.grid(row=this_row,column=2)
        mb_acq.menu =  tk.Menu ( mb_acq, tearoff = 0 )
        mb_acq["menu"] =  mb_acq.menu

        epiVar = tk.IntVar()
        multibandVar = tk.IntVar()
        spiralVar = tk.IntVar()

        mb_acq.menu.add_checkbutton ( label="EPI",variable=epiVar ,command= lambda: self.optText(mb_acq,'EPI'))
        mb_acq.menu.add_checkbutton ( label="Multiband",variable=multibandVar, command= lambda: self.optText(mb_acq,'Multiband'))

        d['mb_acqtype'] = mb_acq


        varFM = tk.IntVar()
        self.dti_cbx_fm = tk.Checkbutton(self.dtiframe, text="Has Fieldmap", variable=varFM).grid(row=this_row,column=3)

        self.dti.append(d)
Exemplo n.º 19
0
    def createWidgetSettingsMenuButton(self):
        self.settingsmenuButton = tk.Menubutton(self,
                                                text="Settings",
                                                relief=RAISED)
        self.settingsmenuButton.grid(row=0, column=2, sticky=W + E + N + S)
        self.settingsmenuButton.menu = Menu(self.settingsmenuButton, tearoff=0)

        self.portMenuButton = Menu(self.settingsmenuButton.menu, tearoff=0)
        self.settingsmenuButton.menu.add_cascade(label="Ports",
                                                 menu=self.portMenuButton)

        self.settingsmenuButton["menu"] = self.settingsmenuButton.menu

        ports = serial.tools.list_ports.comports()

        i = 0
        for port, desc, hwid in sorted(ports):
            portName = "{}: {} ".format(port, desc)
            self.uartPortList.append("{}".format(port))
            print(portName)
            self.portMenuButton.add_radiobutton(label=portName,
                                                var=self.portSelect,
                                                value=i)
            i = i + 1
            print(self.portSelect.get())

        #set callback for radioButtons
        self.portSelect.trace("w", self.changePortsCallback)
Exemplo n.º 20
0
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        self.top = tk.Frame(master, relief='raised')
        self.toolbar = tk.Frame(master)
        self.table = tk.Frame(master)

        self.top.pack(side='top', fill='x')
        self.toolbar.pack(side='top', fill='x')
        self.table.pack(side='top')

        self.menu = tk.Menubutton(self.top, text=txt_file, underline=0)
        self.menu.grid(row=0, column=0)
        self.menu_sub = tk.Menu(self.menu, tearoff=0)
        self.menu['menu'] = self.menu_sub
        self.menu_sub.add_command(label=txt_new, underline=0, command=self.new_func)
        self.menu_sub.add_command(label=txt_open, underline=0, command=self.open_func)
        self.menu_sub.add_command(label=txt_save, underline=0, command=self.save_func)
        self.menu_sub.add_separator()
        self.menu_sub.add_command(label=txt_exit, command=self.exit_func)

        self.label_toolbar = tk.Label(self.toolbar, text=txt_tools)
        self.label_toolbar.grid(row=0, column=1)
        #toolbar stuff

        self.area = tk.Text(self.table, width=50, height=25, wrap='none')
        self.area.grid(row=0, column=0)

        self.scrollx = tk.Scrollbar(self.table, orient='horizontal', command=self.area.xview)
        self.scrollx.grid(row=1, column=0, sticky='we')
        self.scrolly = tk.Scrollbar(self.table, orient='vertical', command=self.area.yview)
        self.scrolly.grid(row=0, column=1, sticky='ns')
        self.area.configure(xscrollcommand=self.scrollx.set, yscrollcommand=self.scrolly.set)

        self.types = [(txt_text_files, '*.txt')]
Exemplo n.º 21
0
    def makePageMenu(self, menubar):

        button = tkinter.Menubutton(menubar, text='Page')
        button.pack(side=tkinter.LEFT, padx=2)
        button.menu = tkinter.Menu(button,
                                   tearoff=1,
                                   postcommand=self.pageMenuInit)
        num = 1  # tearoff is entry 0 on menu
        button.nextNum = num
        num = num + 1
        button.menu.add_command(label="Next", command=self.nextPage)
        button.backNum = num
        num = num + 1
        button.menu.add_command(label="Back", command=self.backPage)
        button.firstNum = num
        num = num + 1
        button.menu.add_command(label="First", command=self.firstPage)
        button.lastNum = num
        num = num + 1
        button.menu.add_command(label="Last", command=self.lastPage)
        # need to add separator here because menu.delete always
        # deletes at least one item
        button.sepNum = num
        num = num + 1
        button.menu.add_separator()
        button["menu"] = button.menu
        return button
Exemplo n.º 22
0
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        image = tk.PhotoImage(file="img/new_background.png")
        label = tk.Label(self, image=image)
        label.image = image
        label.pack()

        #Adds menubotton with various options
        mb = tk.Menubutton(self, text="Sort options by", width=10)
        mb.place(relx=0.6, rely=0.09)
        mb.menu = tk.Menu(mb, tearoff=0)
        mb["menu"] = mb.menu
        mb.menu.add_command(
            label="volume",
            command=lambda: controller.show_frame(OptionsPage, self.ticker,
                                                  menu_options["volume"]))
        mb.menu.add_command(
            label="open-interest",
            command=lambda: controller.show_frame(
                OptionsPage, self.ticker, menu_options["open-interest"]))

        #adds entry box for user input
        self.entry = tk.Entry(self, width=20, bg="white")
        self.entry.place(relx=0.5, rely=0.1, anchor='center')
        self.entry.bind('<KeyRelease>', self.on_key_release)

        #listbox for displaying posible stock tickers
        self.listbox = tk.Listbox(self, exportselection=False)
        self.listbox.place(relx=0.5, rely=0.12, anchor='n')
        self.listbox.bind('<<ListboxSelect>>', self.selected)
        self.update_listbox(symbols)
Exemplo n.º 23
0
    def __init__(self, master, bg, fg, selected_bg):
        tk.Frame.__init__(self, master, bd=1, relief='raised')
        self.master = master
        self.configure(background=bg)

        menu_button = tk.Menubutton(self,
                                    text='File',
                                    background=bg,
                                    foreground=fg,
                                    activeforeground=bg,
                                    activebackground='white')

        file_menu = tk.Menu(menu_button, tearoff=0)
        file_menu.add_command(label='Example',
                              background=bg,
                              foreground=bg,
                              activeforeground=bg,
                              activebackground='white')

        menu_button.config(menu=file_menu)
        menu_button.pack(side='left')

        close = SimpleButton(self,
                             text=' X ',
                             command=master.quit,
                             bg=bg,
                             fg=fg)
        close.pack(side='right')

        self.bind("<Button-1>", self.start_move)
        self.bind("<ButtonRelease-1>", self.stop_move)
        self.bind("<B1-Motion>", self.moving)
Exemplo n.º 24
0
 def __init__(self, master, naxes):
     self._master = master
     self._naxes = naxes
     self._mbar = Tk.Frame(master=master, relief=Tk.RAISED, borderwidth=2)
     self._mbar.pack(side=Tk.LEFT)
     self._mbutton = Tk.Menubutton(
         master=self._mbar, text="Axes", underline=0)
     self._mbutton.pack(side=Tk.LEFT, padx="2m")
     self._mbutton.menu = Tk.Menu(self._mbutton)
     self._mbutton.menu.add_command(
         label="Select All", command=self.select_all)
     self._mbutton.menu.add_command(
         label="Invert All", command=self.invert_all)
     self._axis_var = []
     self._checkbutton = []
     for i in range(naxes):
         self._axis_var.append(Tk.IntVar())
         self._axis_var[i].set(1)
         self._checkbutton.append(self._mbutton.menu.add_checkbutton(
             label = "Axis %d" % (i+1),
             variable=self._axis_var[i],
             command=self.set_active))
         self._mbutton.menu.invoke(self._mbutton.menu.index("Select All"))
     self._mbutton['menu'] = self._mbutton.menu
     self._mbar.tk_menuBar(self._mbutton)
     self.set_active()
Exemplo n.º 25
0
    def createWidgets(self):
        self.message_label = tk.Label(
            self.popup_frame,
            text="Multiple Merchants found for given inputs.")
        self.message_label.grid(sticky=tk.N, row=0, column=0)

        self.merch_menubutton = tk.Menubutton(self.popup_frame,
                                              relief="raised",
                                              textvariable=self.merch_menuvar)
        self.merch_menubutton.grid(sticky=tk.NW, row=1, column=0)
        self.merch_menu = tk.Menu(self.merch_menubutton)
        self.merch_menubutton["menu"] = self.merch_menu
        for merchant in self.possiblemerchants.keys():
            self.merch_menu.add_checkbutton(label=merchant,
                                            variable=self.merch_menuitemvar,
                                            onvalue=merchant,
                                            command=self.updateMerchantButton)

        self.selectmerch_button = tk.Button(self.popup_frame,
                                            text="Select Merchant",
                                            state="disabled",
                                            command=self.selectMerchant)
        self.selectmerch_button.grid(sticky=tk.NW, row=1, column=1)

        self.record_canvas = tk.Canvas(self.popup_frame,
                                       relief=tk.RIDGE,
                                       bd=2,
                                       height=400)
Exemplo n.º 26
0
    def create_widgets(self):
        """ initializes widgets """
        tool_names = []
        tool_presence = []
        # toolbox = Tl.Tool(tool_names, tool_presence)
        toolbox = Tl.Tool.create_toolbox(Tl.Tool(tool_names, tool_presence))
        self.make_checkbuttons(toolbox)
        tk.Button(self, text="checkout", command=self.checkout).grid(row=40,
                                                                     column=40)
        # create quit app button
        tk.Button(self, text="Quit", command=self.quit_app).grid(row=400,
                                                                 column=100)

        #create_menus ...... previously def create_menus(self):
        menu = tk.Menu(self.master)
        mb = tk.Menubutton(self, text="Employee Name")
        self.master.config(menu=menu)
        mb.submenu = tk.Menu(mb, tearoff=0)

        menu.add_cascade(label="Employee", menu=mb.submenu)

        employee_names = []
        employee_selected = []

        self.employees = Emp.Employee.create_employees(
            Emp.Employee(employee_names, employee_selected))
        for n in range(len(self.employees[0])):
            mb.submenu.add_checkbutton(label=self.employees[0][n],
                                       variable=self.employees[1][n])
Exemplo n.º 27
0
    def __init__(self, master):
        super().__init__(master)
        self.frame_label = tk.Label(self, text='Tuning')
        self.frame_label.pack()
        self.tuning_menu_button = tk.Menubutton(self)
        # self.tuning_menu_button.pack()
        self.tuning_menu_button.menu = tk.Menu(self.tuning_menu_button,
                                               tearoff=0)
        self.tuning_menu_button['menu'] = self.tuning_menu_button.menu

        self.text_display_variable = tk.StringVar()
        self.tuning_menu_button.config(textvariable=self.text_display_variable)

        for tuning_name in tunings:
            self.tuning_menu_button.menu.add_command(
                label=tuning_name,
                command=lambda s=tuning_name: self.text_display_variable.set(s
                                                                             ))

        self.text_display_variable.set('STANDARD')

        self.tuning_menu_button.pack(fill=tk.X)
        # self.tuning_menu_button.config(width=20)

        self.pack(fill=tk.X)
        self.config(borderwidth=2, relief=tk.GROOVE)
Exemplo n.º 28
0
    def __init__(self, master):
        self.master = master

        tk.Frame.__init__(self, self.master)
        canvas = tk.Canvas(self, width=1000, height=700)
        canvas.pack()

        # título de la pantalla Menu
        tk.Label(text=self.master.userOption.Name(), font=('Helvetica', '25', 'bold')).place(x=500, y=0)

        #imagen del Lugar7
        self.master.MakeImage(self.master.userOption.getImageLink(),  0.025, 0.10, 0.45, 0.5)


        #descripcion de provincia 0 comarca
        self.master.MakeTextBox(self.master.userOption.getDescription(), 0.5, 0.10, 0.48, 0.5)

        #submenu con las zonas del Lugar(cambio a pagina 3)
        self.zones_subMenu = tk.Menubutton(self, text="zonas turisticas disponibles", font={'Arial', 16}, relief=tk.RAISED)
        self.zones_subMenu.menu = tk.Menu(self.zones_subMenu, tearoff=0)
        self.zones_subMenu["menu"] = self.zones_subMenu.menu
        #imprime las 4 Zonas turisticas disponibles en el menu
        self.zones_subMenu.menu.add_command(label=self.master.userOption.getZone(0).Name(), command=lambda: self.CapturePlace(0))
        self.zones_subMenu.menu.add_command(label=self.master.userOption.getZone(1).Name(), command=lambda: self.CapturePlace(1))
        self.zones_subMenu.menu.add_command(label=self.master.userOption.getZone(2).Name(), command=lambda: self.CapturePlace(2))
        self.zones_subMenu.menu.add_command(label=self.master.userOption.getZone(3).Name(), command=lambda: self.CapturePlace(3))
        self.zones_subMenu.place(relx=0.65, rely=0.65)

        #boton de regreso a Menu Principal
        backButtom = tk.Button(self, text="< Regresar a MenuPrincipal", command=lambda: self.master.switch_frame(MainMenu))
        backButtom.place(relx=0.0, rely=0.0)
def apply(root, d, pos):
    """Creates interface for dictionnary d in root at given grid position """
    "TODO: repercuter kwargs"
    (x, y, w, h) = pos
    lbs = []
    saisies = dict()
    entries = dict()
    for (n, (k, v)) in enumerate(d.iteritems()):
        assert (k not in saisies)
        l = tk.Label(root, text=str(k))
        l.grid(row=n + x, column=y)
        if isinstance(v, list):
            """value= list => multiple choice => use menubutton"""
            #saisies[k]= tk.StringVar(name=str(n),value= str(v[0]))
            saisies[k] = tk.StringVar(value=str(v[0]))
            ent = tk.Menubutton(root, textvariable=saisies[k], relief="sunken")
            ent.m = tk.Menu(ent, tearoff=0)
            ent.config(menu=ent.m)
            for (kk, possible) in enumerate(v):
                possibleSaved = "%s" % possible
                ent.m.add_command(label=str(possible),
                                  command=doLambda(updateMB, saisies[k],
                                                   str(d[k][kk])))
                print(possible)
        else:
            """value is not a list => classical edit => use Entry"""
            #saisies[k]= tk.StringVar(name=str(n),value= str(v))
            saisies[k] = tk.StringVar(value=str(v))
            ent = tk.Entry(textvariable=saisies[k])  #,width=30)
        ent.grid(row=n + x, column=y + 1)
        entries[k] = ent
    return saisies
    def __init__(self):
        tk.Tk.__init__(self)
        self.title('Barnsley Fern')
        menubar = tk.Menu()
        help_menu = tk.Menu(menubar)
        menubar.add_cascade(label = 'Barnsley Fern Help', menu = help_menu)
        help_menu.add_command(label = 'Affine transformations',
                              command = self.affine_transformations_help)
        help_menu.add_command(label = 'Displayed parameters', command = self.displayed_parameters_help)
        help_menu.add_command(label = 'Fern species', command = self.fern_species_help)
        self.config(menu = menubar)

        fern_selection_board = tk.Frame(bd = 20)
        predefined_ferns_button = tk.Menubutton(fern_selection_board, text = 'Predefined ferns')
        predefined_ferns_button.pack(padx = 30, pady = 30)
        predefined_ferns = tk.Menu(predefined_ferns_button)
        for species in 'Black Spleenwort', 'Culcita', 'Cyclosorus':
            predefined_ferns.add_command(label = species, command = lambda fern_species = species:
                                                                              self.display_fern(fern_species))
        predefined_ferns_button.config(menu = predefined_ferns)
        fern_parameters_board = FernParametersBoard()
        self.drawing = Drawing(fern_parameters_board)
        self.drawing.pack(padx = 30, side = tk.LEFT)
        fern_selection_board.pack()
        fern_parameters_board.pack()
        draw_buttons = tk.Frame(bd = 20)
        tk.Button(draw_buttons, text = 'Draw custom fern',
                  command = lambda fern_species = 'Custom':
                                         self.display_fern(fern_species)).pack(padx = 20, side = tk.LEFT)
        draw_buttons.pack()
        self.displayed_fern = tk.StringVar()
        tk.Label(draw_buttons, textvariable = self.displayed_fern, width = 16,
                 fg = Fern.colour).pack(pady = 40)
        self.displayed_fern.set('Black Spleenwort')