def viewFacts(modelXbrl, tabWin, header="Fact Table", arcrole=XbrlConst.parentChild, linkrole=None, linkqname=None, arcqname=None, lang=None, expandAll=False): modelXbrl.modelManager.showStatus( _("viewing relationships {0}").format(os.path.basename(arcrole))) view = ViewFactTable(modelXbrl, tabWin, header, arcrole, linkrole, linkqname, arcqname, lang, expandAll) view.ignoreDims = BooleanVar(value=False) view.showDimDefaults = BooleanVar(value=False) view.view() view.treeView.bind("<<TreeviewSelect>>", view.treeviewSelect, '+') view.treeView.bind("<ButtonRelease-1>", view.treeviewClick, '+') view.treeView.bind("<Enter>", view.treeviewEnter, '+') view.treeView.bind("<Leave>", view.treeviewLeave, '+') # languages menu menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) view.ignoreDims.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Ignore Dimensions"), underline=0, variable=view.ignoreDims, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) view.menuAddExpandCollapse() view.menuAddClipboard() view.menuAddLangs() view.menuAddLabelRoles(includeConceptName=True)
def viewFacts(modelXbrl, tabWin, header="Fact Table", arcrole=XbrlConst.parentChild, linkrole=None, linkqname=None, arcqname=None, lang=None, expandAll=False): modelXbrl.modelManager.showStatus(_("viewing relationships {0}").format(os.path.basename(arcrole))) view = ViewFactTable(modelXbrl, tabWin, header, arcrole, linkrole, linkqname, arcqname, lang, expandAll) view.ignoreDims = BooleanVar(value=False) view.showDimDefaults = BooleanVar(value=False) if view.view(): view.treeView.bind("<<TreeviewSelect>>", view.treeviewSelect, '+') view.treeView.bind("<ButtonRelease-1>", view.treeviewClick, '+') view.treeView.bind("<Enter>", view.treeviewEnter, '+') view.treeView.bind("<Leave>", view.treeviewLeave, '+') # languages menu menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) view.ignoreDims.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Ignore Dimensions"), underline=0, variable=view.ignoreDims, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) view.menuAddExpandCollapse() view.menuAddClipboard() view.menuAddLangs() view.menuAddLabelRoles(includeConceptName=True) #saveMenu = Menu(view.viewFrame, tearoff=0) #saveMenu.add_command(label=_("HTML file"), underline=0, command=lambda: view.modelXbrl.modelManager.cntlr.fileSave(view=view, fileType="html")) #menu.add_cascade(label=_("Save"), menu=saveMenu, underline=0) return view
def init_menu_bar(self): """Creating MenuBar : File, Connect, Help""" menu_bar = Menu(self) menu_file = Menu(menu_bar, tearoff=0) menu_file.add_command(label="Quit", command=self._quit) menu_bar.add_cascade(label="File", menu=menu_file) menu_connect = Menu(menu_bar, tearoff=0) menu_connect.add_command(label="Host", command=self.host_window) menu_connect.add_command(label="Connect", command=self.connect_window) menu_bar.add_cascade(label="Connect", menu=menu_connect) menu_character_sheet = Menu(menu_bar, tearoff=0) menu_character_sheet.add_command(label="Save As...", command=self.tab_character_sheet.save) menu_character_sheet.add_command(label="Load", command=self.tab_character_sheet.load) menu_character_sheet.add_command(label="Reset", command=self.tab_character_sheet.reset) menu_character_sheet.add_command(label="Roll Characteristics", \ command=self.tab_character_sheet.rollCharacteristics) menu_character_sheet.add_checkbutton(label="Freeze Characteristics", \ variable=self.tab_character_sheet.freeze) menu_bar.add_cascade(label="Character Sheet", menu=menu_character_sheet) menu_help = Menu(menu_bar, tearoff=0) menu_help.add_command(label="About", command=self.about) menu_bar.add_cascade(label="Help", menu=menu_help) self.window.config(menu=menu_bar)
def createMenu(self): self.status_top = BooleanVar() self.status_top.set(True) self.language_choice = StringVar() self.language_choice.set("zh-cn") menubar = Menu(self) language = Menu(menubar, tearoff=0) option = Menu(menubar, tearoff=0) menubar.add_cascade(label="Language", menu=language) menubar.add_cascade(label="Option", menu=option) for label, value in self.all_language: language.add_radiobutton( label=label, variable=self.language_choice, value=value ) option.add_checkbutton( label="Always on Top", variable=self.status_top, command=lambda : self.attributes("-topmost", self.status_top.get()) ) option.add_command(label="Exit", command=self.quit) self.config(menu=menubar)
def creatMenu(self): #主菜单 menubar = Menu(self) #子菜单 menufile = Menu(menubar) for item in ["新建", "打开", "保存", "另存为"]: menufile.add_radiobutton(label=item) menuedit = Menu(menubar) for item in ["复制", "黏贴", "剪切"]: menuedit.add_checkbutton(label=item) #子菜单与主菜单关联 for name, submenu in zip(["文件", "编辑"], [menufile, menuedit]): menubar.add_cascade(label=name, menu=submenu) #最关键的一步,主菜单与app关联 self.master.config(menu=menubar) #右键菜单 menu = Menu(self.master) for i in ('One', 'Two', 'Three'): menu.add_command(label=i) #插入分割线 menu.add_separator() for i in ('1', '2', '3'): menu.add_command(label=i) #绑定鼠标右键呼出 if (self.master.tk.call('tk', 'windowingsystem') == 'aqua'): self.master.bind('<2>', lambda e: menu.post(e.x_root, e.y_root)) self.master.bind('<Control-1>', lambda e: menu.post(e.x_root, e.y_root)) else: self.master.bind('<3>', lambda e: menu.post(e.x_root, e.y_root))
def buildMenu(self): menubar = Menu(self) #Skapar första meny-lista filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label="New", command=self.void) filemenu.add_command(label="Open", command=self.void) filemenu.add_command(label="Save", command=self.void) menubar.add_cascade(label="File", menu=filemenu) #Skapar nästa meny-lista othermenu = Menu(menubar, tearoff=0) othermenu.add_checkbutton(label="Check Me !") menubar.add_cascade(label="Other", menu=othermenu) #Skapar hierarkisk meny-lista doublemenu = Menu(menubar, tearoff=0) doublemenu.add_command(label="button") innermenu = Menu(doublemenu, tearoff=0) innermenu.add_command(label="one") innermenu.add_command(label="two") innermenu.add_command(label="ten") doublemenu.add_cascade(label="innerMenu", menu=innermenu) menubar.add_cascade(label="Double", menu=doublemenu) #Lägger till menyn self.config(menu=menubar)
class NescientMenu(Menu): def __init__(self, master): Menu.__init__(self, master) self.add_command(label='Open', command=lambda: master.add_files('dialog')) self.option_menu = Menu(self, tearoff=0) self.option_menu.add_command(label='Benchmark current mode', command=lambda: master.threaded_task( master.benchmark_current_mode)) self.option_menu.add_command( label='Benchmark all modes', command=lambda: master.threaded_task(master.benchmark_all_modes)) self.option_menu.add_separator() self.overwrite = BooleanVar() self.overwrite.set(True) self.option_menu.add_checkbutton(label='Overwrite files', onvalue=True, offvalue=False, variable=self.overwrite) self.bring_to_front = BooleanVar() self.bring_to_front.set(True) self.option_menu.add_checkbutton(label='Bring to front', onvalue=True, offvalue=False, variable=self.bring_to_front) self.add_cascade(label='Options', menu=self.option_menu) self.add_command(label='About', command=lambda: AboutWindow(master))
def create_menu(self, event): menu = Menu(self, tearoff=0) menu.add_command(label="复制", command=self.copy) menu.add_command(label="全选", command=self.select_all) menu.add_command(label="清除", command=self.clear_all) menu.add_checkbutton(label="自动滚屏", onvalue=True, offvalue=0, variable=self.rollFlag) menu.post(event.x_root, event.y_root)
def _init_menubar(self, parent): menubar = Menu(parent) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label="Exit", underline=1, command=self.destroy, accelerator="q") menubar.add_cascade(label="File", underline=0, menu=filemenu) actionmenu = Menu(menubar, tearoff=0) actionmenu.add_command(label="Next", underline=0, command=self.next, accelerator="n, Space") actionmenu.add_command(label="Previous", underline=0, command=self.prev, accelerator="p, Backspace") menubar.add_cascade(label="Action", underline=0, menu=actionmenu) optionmenu = Menu(menubar, tearoff=0) optionmenu.add_checkbutton( label="Remove Duplicates", underline=0, variable=self._glue.remove_duplicates, command=self._toggle_remove_duplicates, accelerator="r", ) menubar.add_cascade(label="Options", underline=0, menu=optionmenu) viewmenu = Menu(menubar, tearoff=0) viewmenu.add_radiobutton(label="Tiny", variable=self._size, underline=0, value=10, command=self.resize) viewmenu.add_radiobutton(label="Small", variable=self._size, underline=0, value=12, command=self.resize) viewmenu.add_radiobutton(label="Medium", variable=self._size, underline=0, value=14, command=self.resize) viewmenu.add_radiobutton(label="Large", variable=self._size, underline=0, value=18, command=self.resize) viewmenu.add_radiobutton(label="Huge", variable=self._size, underline=0, value=24, command=self.resize) menubar.add_cascade(label="View", underline=0, menu=viewmenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label="About", underline=0, command=self.about) menubar.add_cascade(label="Help", underline=0, menu=helpmenu) parent.config(menu=menubar)
def initMenu(self): menubar = Menu(self) optionsMenu = Menu(menubar, tearoff=0) optionsMenu.add_checkbutton(label="Always on top", command=self.toggleAlwaysOnTop) optionsMenu.add_command(label="Clear all (except last)", command=self.clearAll) menubar.add_cascade(label="Options", menu=optionsMenu) self.parent.config(menu=menubar)
def __init__(self, root, **kwargs): super().__init__(root, kwargs) help = Menu(self, tearoff=0) help.add_command(label="About", command=AboutWindow) var = BooleanVar() var.set(MainConfiguration().TOOLTIPS_ON) MainConfiguration().TOOLTIPS_ON = var help.add_checkbutton(label="Tooltips", variable=var) self.add_cascade(label="Help", menu=help)
def __init__( self, parent: tk.Misc, *, tool_frame: tk.Frame, tool_img: str, menu_bar: tk.Menu, tool_col: int=0, title: str='', resize_x: bool=False, resize_y: bool=False, name: str='', ) -> None: self.visible = tk.BooleanVar(parent, True) self.win_name = name self.allow_snap = False self.can_save = False self.parent = parent self.relX = 0 self.relY = 0 self.can_resize_x = resize_x self.can_resize_y = resize_y super().__init__(parent, name='pane_' + name) self.withdraw() # Hide by default self.tool_button = make_tool_button( frame=tool_frame, img=tool_img, command=self._toggle_win, ) self.tool_button.state(('pressed',)) self.tool_button.grid( row=0, column=tool_col, # Contract the spacing to allow the icons to fit. padx=(2 if utils.MAC else (5, 2)), ) tooltip.add_tooltip( self.tool_button, text=gettext('Hide/Show the "{}" window.').format(title)) menu_bar.add_checkbutton( label=title, variable=self.visible, command=self._set_state_from_menu, ) self.transient(master=parent) self.resizable(resize_x, resize_y) self.title(title) tk_tools.set_window_icon(self) self.protocol("WM_DELETE_WINDOW", self.hide_win) parent.bind('<Configure>', self.follow_main, add=True) self.bind('<Configure>', self.snap_win) self.bind('<FocusIn>', self.enable_snap)
def _init_menubar(self, parent): menubar = Menu(parent) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label="Reset Parser", underline=0, command=self.reset, accelerator="Del") filemenu.add_command(label="Print to Postscript", underline=0, command=self.postscript, accelerator="Ctrl-p") filemenu.add_command(label="Exit", underline=1, command=self.destroy, accelerator="Ctrl-x") menubar.add_cascade(label="File", underline=0, menu=filemenu) editmenu = Menu(menubar, tearoff=0) editmenu.add_command(label="Edit Grammar", underline=5, command=self.edit_grammar, accelerator="Ctrl-g") editmenu.add_command(label="Edit Text", underline=5, command=self.edit_sentence, accelerator="Ctrl-t") menubar.add_cascade(label="Edit", underline=0, menu=editmenu) rulemenu = Menu(menubar, tearoff=0) rulemenu.add_command(label="Step", underline=1, command=self.step, accelerator="Space") rulemenu.add_separator() rulemenu.add_command(label="Shift", underline=0, command=self.shift, accelerator="Ctrl-s") rulemenu.add_command(label="Reduce", underline=0, command=self.reduce, accelerator="Ctrl-r") rulemenu.add_separator() rulemenu.add_command(label="Undo", underline=0, command=self.undo, accelerator="Ctrl-u") menubar.add_cascade(label="Apply", underline=0, menu=rulemenu) viewmenu = Menu(menubar, tearoff=0) viewmenu.add_checkbutton( label="Show Grammar", underline=0, variable=self._show_grammar, command=self._toggle_grammar ) viewmenu.add_separator() viewmenu.add_radiobutton(label="Tiny", variable=self._size, underline=0, value=10, command=self.resize) viewmenu.add_radiobutton(label="Small", variable=self._size, underline=0, value=12, command=self.resize) viewmenu.add_radiobutton(label="Medium", variable=self._size, underline=0, value=14, command=self.resize) viewmenu.add_radiobutton(label="Large", variable=self._size, underline=0, value=18, command=self.resize) viewmenu.add_radiobutton(label="Huge", variable=self._size, underline=0, value=24, command=self.resize) menubar.add_cascade(label="View", underline=0, menu=viewmenu) animatemenu = Menu(menubar, tearoff=0) animatemenu.add_radiobutton(label="No Animation", underline=0, variable=self._animate, value=0) animatemenu.add_radiobutton( label="Slow Animation", underline=0, variable=self._animate, value=20, accelerator="-" ) animatemenu.add_radiobutton( label="Normal Animation", underline=0, variable=self._animate, value=10, accelerator="=" ) animatemenu.add_radiobutton( label="Fast Animation", underline=0, variable=self._animate, value=4, accelerator="+" ) menubar.add_cascade(label="Animate", underline=1, menu=animatemenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label="About", underline=0, command=self.about) helpmenu.add_command(label="Instructions", underline=0, command=self.help, accelerator="F1") menubar.add_cascade(label="Help", underline=0, menu=helpmenu) parent.config(menu=menubar)
def getMainMenu(win, e): rmenu = Menu(e.widget.master, tearoff=0, takefocus=0, bg="#ffffff") messagesMenu = Menu(rmenu, tearoff=0, takefocus=0, bg="#ffffff") messagesMenu.add_command(label="Edit...", command=lambda: MessageManagerWindow(win)) messagesMenu.add_command(label="Load", command=lambda: win.loadMessages()) messagesMenu.add_command(label="Save", command=lambda: win.saveMessages(False)) messagesMenu.add_command(label="Save as...", command=lambda: win.saveMessages(True)) messagesMenu.add_command(label="Default", command=lambda: win.loadDefaultMessages()) settingsMenu = Menu(rmenu, tearoff=0, takefocus=0, bg="#ffffff") settingsMenu.add_command(label="Edit...", command=lambda: SettingsWindow(win)) settingsMenu.add_command(label="Load", command=lambda: win.loadSettings()) settingsMenu.add_command(label="Save", command=lambda: win.saveSettings(False)) settingsMenu.add_command(label="Save as...", command=lambda: win.saveSettings(True)) settingsMenu.add_command(label="Default", command=lambda: win.loadDefaultSettings()) issueMenu = Menu(rmenu, tearoff=0, takefocus=0, bg="#ffffff") issueMenu.add_command( label="via Discord", command=lambda: webbrowser.open('https://discord.gg/nqWxgHm', new=2)) issueMenu.add_command( label="via Github", command=lambda: webbrowser.open( 'https://github.com/Go1den/StreamTicker/issues', new=2)) rmenu.add_cascade(label=" Messages", menu=messagesMenu) rmenu.add_cascade(label=" Settings", menu=settingsMenu) rmenu.add_separator() rmenu.add_checkbutton(label=" Always on Top", variable=win.alwaysOnTop, onvalue=True, offvalue=False, command=lambda: win.updateAlwaysOnTop()) rmenu.add_separator() rmenu.add_cascade(label=" Report Issue", menu=issueMenu) rmenu.add_command(label=" Release Notes", command=lambda: webbrowser.open( 'https://pastebin.com/wJpGZE0F', new=2)) rmenu.add_separator() rmenu.add_command(label=' About', command=lambda: AboutWindow(win)) rmenu.add_command(label=' Exit', command=lambda: win.closeWindow()) rmenu.tk_popup(e.x_root + 68, e.y_root + 11, entry="0") return rmenu
def __init__(self, master=None): self.master = Tk() if not master else master self.master.title("Book Finder") self.master.resizable(0, 0) #We change the window icon directly with Tk self.master.tk.call('wm', 'iconphoto', self.master, '::tk::icons::question') self.stext = ScrolledText(master=self.master, bg='white', height=25, width=100) #We disable the edition self.stext.config(state="disabled") menu = Menu() menu_tools = Menu(tearoff=0) menu_tools.add_command(label="Search book", command=lambda: self.search_book()) menu_tools.add_command(label="Exit", command=self.master.destroy) menu.add_cascade(label="Menu", menu=menu_tools) menu_option = Menu(tearoff=0) menu_option.add_checkbutton( label="Don't download img", command=lambda: self.cmd2() if self.cmd2 else print("cmd2 not configured")) menu.add_cascade(label="Option", menu=menu_option) #We create a message box with Tk menu.add_command( label="About", command=lambda: self.master.tk.eval( "tk_messageBox -message {Book Finder} -detail {Make by pythonbrad} -icon info -title About" )) self.master.config(menu=menu) self.stext.pack() #This widget will print status self.label_status = Label(self.master, text="STATUS", font=('Arial', 14)) self.label_status.pack() self.progress_bar = Progressbar() self.progress_bar.pack() self.is_searching = False #It will contains widget in memory self.temp = [] #It will contains an external function #Who will be used by the function search_book self.cmd1 = None self.cmd2 = None
def __init__(self, master, kw_vals, default_text='Any', **kwargs): super().__init__(master, **kwargs) self.default_text = default_text self.kw_vals = kw_vals self.kw_vals_inv = dict(map(reversed, kw_vals.items())) ui_style = Style() ui_style.configure('MultiCombobox.TMenubutton', relief=RAISED, padding=3, anchor=CENTER) ui_style.layout('MultiCombobox.TMenubutton', _layout) self.config(style='MultiCombobox.TMenubutton') menu = Menu(self, tearoff=False, activeforeground='SystemHighlightText', activebackground='SystemHighlight', foreground='SystemWindowText', background='SystemWindow', disabledforeground='SystemGrayText', bd=0, activeborderwidth=1) self.configure(menu=menu) self.any_var = BooleanVar(value=True) menu.add_checkbutton(label=default_text, variable=self.any_var, onvalue=True, offvalue=False, command=self.anySelected) self.choices = {} for i, choice in enumerate(kw_vals): self.choices[choice] = BooleanVar() # columnbreak = (i+1) % 4 == 0 columnbreak = False menu.add_checkbutton(label=choice, variable=self.choices[choice], onvalue=True, offvalue=False, columnbreak=columnbreak, command=self.updateValue) self.updateValue()
def viewMenuExtender(cntlr, viewMenu, *args, **kwargs): # persist menu selections for showing filing data and tables menu from tkinter import Menu, BooleanVar # must only import if GUI present (no tkinter on GUI-less servers) def setLaunchIXBRLViewer(self, *args): cntlr.config["LaunchIXBRLViewer"] = cntlr.launchIXBRLViewer.get() cntlr.saveConfig() erViewMenu = Menu(cntlr.menubar, tearoff=0) viewMenu.add_cascade(label=_("iXBRL Viewer"), menu=erViewMenu, underline=0) cntlr.launchIXBRLViewer = BooleanVar( value=cntlr.config.get("Launch iXBRL Viewer", True)) cntlr.launchIXBRLViewer.trace("w", setLaunchIXBRLViewer) erViewMenu.add_checkbutton(label=_("Launch viewer on load"), underline=0, variable=cntlr.launchIXBRLViewer, onvalue=True, offvalue=False)
def creatMenu(self): #主菜单 menubar = Menu(self.master) #子菜单 menufile = Menu(menubar) #多选菜单 menuradio = Menu(menubar) #单选菜单 menucheck = Menu(menubar) for item in ["1", "2", "3", "4"]: menufile.add_command(label=item) menubar.add_cascade(label="子菜单", menu=menufile) for i in ["a", "b", "c"]: menuradio.add_radiobutton(label=i) menubar.add_cascade(label="多选菜单", menu=menuradio) for i in ["a1", "b2", "c3"]: menucheck.add_checkbutton(label=i) menubar.add_cascade(label="单选菜单", menu=menucheck) return menubar
def _init_menubar(self, parent): menubar = Menu(parent) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label='Exit', underline=1, command=self.destroy, accelerator='q') menubar.add_cascade(label='File', underline=0, menu=filemenu) actionmenu = Menu(menubar, tearoff=0) actionmenu.add_command(label='Next', underline=0, command=self.next, accelerator='n, Space') actionmenu.add_command(label='Previous', underline=0, command=self.prev, accelerator='p, Backspace') menubar.add_cascade(label='Action', underline=0, menu=actionmenu) optionmenu = Menu(menubar, tearoff=0) optionmenu.add_checkbutton(label='Remove Duplicates', underline=0, variable=self._glue.remove_duplicates, command=self._toggle_remove_duplicates, accelerator='r') menubar.add_cascade(label='Options', underline=0, menu=optionmenu) viewmenu = Menu(menubar, tearoff=0) viewmenu.add_radiobutton(label='Tiny', variable=self._size, underline=0, value=10, command=self.resize) viewmenu.add_radiobutton(label='Small', variable=self._size, underline=0, value=12, command=self.resize) viewmenu.add_radiobutton(label='Medium', variable=self._size, underline=0, value=14, command=self.resize) viewmenu.add_radiobutton(label='Large', variable=self._size, underline=0, value=18, command=self.resize) viewmenu.add_radiobutton(label='Huge', variable=self._size, underline=0, value=24, command=self.resize) menubar.add_cascade(label='View', underline=0, menu=viewmenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label='About', underline=0, command=self.about) menubar.add_cascade(label='Help', underline=0, menu=helpmenu) parent.config(menu=menubar)
def _init_menubar(self, parent): menubar = Menu(parent) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label='Exit', underline=1, command=self.destroy, accelerator='q') menubar.add_cascade(label='File', underline=0, menu=filemenu) actionmenu = Menu(menubar, tearoff=0) actionmenu.add_command(label='Next', underline=0, command=self.next, accelerator='n, Space') actionmenu.add_command(label='Previous', underline=0, command=self.prev, accelerator='p, Backspace') menubar.add_cascade(label='Action', underline=0, menu=actionmenu) optionmenu = Menu(menubar, tearoff=0) optionmenu.add_checkbutton(label='Remove Duplicates', underline=0, variable=self._glue.remove_duplicates, command=self._toggle_remove_duplicates, accelerator='r') menubar.add_cascade(label='Options', underline=0, menu=optionmenu) viewmenu = Menu(menubar, tearoff=0) viewmenu.add_radiobutton(label='Tiny', variable=self._size, underline=0, value=10, command=self.resize) viewmenu.add_radiobutton(label='Small', variable=self._size, underline=0, value=12, command=self.resize) viewmenu.add_radiobutton(label='Medium', variable=self._size, underline=0, value=14, command=self.resize) viewmenu.add_radiobutton(label='Large', variable=self._size, underline=0, value=18, command=self.resize) viewmenu.add_radiobutton(label='Huge', variable=self._size, underline=0, value=24, command=self.resize) menubar.add_cascade(label='View', underline=0, menu=viewmenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label='About', underline=0, command=self.about) menubar.add_cascade(label='Help', underline=0, menu=helpmenu) parent.config(menu=menubar)
def viewRenderedGrid(modelXbrl, tabWin, lang=None): modelXbrl.modelManager.showStatus(_("viewing rendering")) view = ViewRenderedGrid(modelXbrl, tabWin, lang) # dimension defaults required in advance of validation from arelle import ValidateXbrlDimensions ValidateXbrlDimensions.loadDimensionDefaults(view) # context menu menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) view.ignoreDimValidity = BooleanVar(value=True) view.ignoreDimValidity.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Ignore Dimensional Validity"), underline=0, variable=view.ignoreDimValidity, onvalue=True, offvalue=False) view.xAxisChildrenFirst = BooleanVar(value=True) view.xAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("X-Axis Children First"), underline=0, variable=view.xAxisChildrenFirst, onvalue=True, offvalue=False) view.yAxisChildrenFirst = BooleanVar(value=False) view.yAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Y-Axis Children First"), underline=0, variable=view.yAxisChildrenFirst, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) view.tablesMenu = Menu(view.viewFrame, tearoff=0) menu.add_cascade(label=_("Tables"), menu=view.tablesMenu, underline=0) view.tablesMenuLength = 0 view.menuAddLangs() view.view() view.blockSelectEvent = 1 view.blockViewModelObject = 0 view.viewFrame.bind("<Enter>", view.cellEnter, '+') view.viewFrame.bind("<Leave>", view.cellLeave, '+')
def viewRenderedGrid(modelXbrl, tabWin, lang=None): modelXbrl.modelManager.showStatus(_("viewing rendering")) view = ViewRenderedGrid(modelXbrl, tabWin, lang) # dimension defaults required in advance of validation from arelle import ValidateXbrlDimensions ValidateXbrlDimensions.loadDimensionDefaults(view) # context menu setDefaults(view) menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) view.ignoreDimValidity.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Ignore Dimensional Validity"), underline=0, variable=view.ignoreDimValidity, onvalue=True, offvalue=False) view.xAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("X-Axis Children First"), underline=0, variable=view.xAxisChildrenFirst, onvalue=True, offvalue=False) view.yAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Y-Axis Children First"), underline=0, variable=view.yAxisChildrenFirst, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) view.tablesMenu = Menu(view.viewFrame, tearoff=0) menu.add_cascade(label=_("Tables"), menu=view.tablesMenu, underline=0) view.tablesMenuLength = 0 view.menuAddLangs() view.menu.add_command(label=_("Save html file"), underline=0, command=lambda: view.modelXbrl.modelManager.cntlr.fileSave(view=view)) view.view() view.blockSelectEvent = 1 view.blockViewModelObject = 0 view.viewFrame.bind("<Enter>", view.cellEnter, '+') view.viewFrame.bind("<Leave>", view.cellLeave, '+')
def viewRenderedGrid(modelXbrl, tabWin, lang=None): modelXbrl.modelManager.showStatus(_("viewing rendering")) view = ViewRenderedGrid(modelXbrl, tabWin, lang) view.blockMenuEvents = 1 menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) optionsMenu.add_command(label=_("New fact item options"), underline=0, command=lambda: getNewFactItemOptions(modelXbrl.modelManager.cntlr, view.newFactItemOptions)) view.ignoreDimValidity.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Ignore Dimensional Validity"), underline=0, variable=view.ignoreDimValidity, onvalue=True, offvalue=False) view.xAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("X-Axis Children First"), underline=0, variable=view.xAxisChildrenFirst, onvalue=True, offvalue=False) view.yAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Y-Axis Children First"), underline=0, variable=view.yAxisChildrenFirst, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) view.tablesMenu = Menu(view.viewFrame, tearoff=0) menu.add_cascade(label=_("Tables"), menu=view.tablesMenu, underline=0) view.tablesMenuLength = 0 view.menuAddLangs() saveMenu = Menu(view.viewFrame, tearoff=0) saveMenu.add_command(label=_("HTML file"), underline=0, command=lambda: view.modelXbrl.modelManager.cntlr.fileSave(view=view, fileType="html")) saveMenu.add_command(label=_("Table layout infoset"), underline=0, command=lambda: view.modelXbrl.modelManager.cntlr.fileSave(view=view, fileType="xml")) saveMenu.add_command(label=_("XBRL instance"), underline=0, command=view.saveInstance) menu.add_cascade(label=_("Save"), menu=saveMenu, underline=0) view.view() view.blockSelectEvent = 1 view.blockViewModelObject = 0 view.viewFrame.bind("<Enter>", view.cellEnter, '+') view.viewFrame.bind("<Leave>", view.cellLeave, '+') view.viewFrame.bind("<1>", view.onClick, '+') view.blockMenuEvents = 0
def viewFactsGrid(modelXbrl, tabWin, header="Fact Grid", arcrole=XbrlConst.parentChild, linkrole=None, linkqname=None, arcqname=None, lang=None): modelXbrl.modelManager.showStatus(_("viewing facts")) view = ViewFactsGrid(modelXbrl, tabWin, header, arcrole, linkrole, linkqname, arcqname, lang) if view.tableSetup(): view.ignoreDims = BooleanVar(value=False) view.showDimDefaults = BooleanVar(value=False) # context menu menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) view.ignoreDims.trace("w", view.view) optionsMenu.add_checkbutton(label=_("Ignore Dimensions"), underline=0, variable=view.ignoreDims, onvalue=True, offvalue=False) view.showDimDefaults.trace("w", view.view) optionsMenu.add_checkbutton(label=_("Show Dimension Defaults"), underline=0, variable=view.showDimDefaults, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) menu.add_cascade(label=_("Close"), underline=0, command=view.close) view.menuAddLangs() view.view() view.blockSelectEvent = 1 view.blockViewModelObject = 0 view.viewFrame.bind("<Enter>", view.cellEnter, '+') view.viewFrame.bind("<Leave>", view.cellLeave, '+')
def viewFactsGrid(modelXbrl, tabWin, header="Fact Grid", arcrole=XbrlConst.parentChild, linkrole=None, linkqname=None, arcqname=None, lang=None): modelXbrl.modelManager.showStatus(_("viewing facts")) view = ViewFactsGrid(modelXbrl, tabWin, header, arcrole, linkrole, linkqname, arcqname, lang) if view.tableSetup(): view.ignoreDims = BooleanVar(value=False) view.showDimDefaults = BooleanVar(value=False) # context menu menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) view.ignoreDims.trace("w", view.view) optionsMenu.add_checkbutton(label=_("Ignore Dimensions"), underline=0, variable=view.ignoreDims, onvalue=True, offvalue=False) view.showDimDefaults.trace("w", view.view) optionsMenu.add_checkbutton(label=_("Show Dimension Defaults"), underline=0, variable=view.showDimDefaults, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) menu.add_cascade(label=_("Close"), underline=0, command=view.close) view.menuAddLangs() view.view() view.blockSelectEvent = 1 view.blockViewModelObject = 0 view.viewFrame.bind("<Enter>", view.cellEnter, '+') view.viewFrame.bind("<Leave>", view.cellLeave, '+')
def viewRenderedGrid(modelXbrl, tabWin, lang=None): modelXbrl.modelManager.showStatus(_("viewing rendering")) view = ViewRenderedGrid(modelXbrl, tabWin, lang) view.blockMenuEvents = 1 menu = view.contextMenu() optionsMenu = Menu(view.viewFrame, tearoff=0) optionsMenu.add_command( label=_("New fact item options"), underline=0, command=lambda: getNewFactItemOptions(modelXbrl.modelManager.cntlr, view.newFactItemOptions)) view.ignoreDimValidity.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Ignore Dimensional Validity"), underline=0, variable=view.ignoreDimValidity, onvalue=True, offvalue=False) view.xAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("X-Axis Children First"), underline=0, variable=view.xAxisChildrenFirst, onvalue=True, offvalue=False) view.yAxisChildrenFirst.trace("w", view.viewReloadDueToMenuAction) optionsMenu.add_checkbutton(label=_("Y-Axis Children First"), underline=0, variable=view.yAxisChildrenFirst, onvalue=True, offvalue=False) menu.add_cascade(label=_("Options"), menu=optionsMenu, underline=0) view.tablesMenu = Menu(view.viewFrame, tearoff=0) menu.add_cascade(label=_("Tables"), menu=view.tablesMenu, underline=0) view.tablesMenuLength = 0 view.menuAddLangs() saveMenu = Menu(view.viewFrame, tearoff=0) saveMenu.add_command(label=_("HTML file"), underline=0, command=lambda: view.modelXbrl.modelManager.cntlr. fileSave(view=view, fileType="html")) saveMenu.add_command(label=_("XML infoset"), underline=0, command=lambda: view.modelXbrl.modelManager.cntlr. fileSave(view=view, fileType="xml")) saveMenu.add_command(label=_("XBRL instance"), underline=0, command=view.saveInstance) menu.add_cascade(label=_("Save"), menu=saveMenu, underline=0) view.view() view.blockSelectEvent = 1 view.blockViewModelObject = 0 view.viewFrame.bind("<Enter>", view.cellEnter, '+') view.viewFrame.bind("<Leave>", view.cellLeave, '+') view.blockMenuEvents = 0
def init_menu_view(self): menu_view = Menu(self.menu_bar) menu_view.add_checkbutton(label="工具栏") menu_view.add_checkbutton(label="快速连接栏") menu_view.add_checkbutton(label="本地文件") menu_view.add_checkbutton(label="状态栏") menu_view.add_separator() menu_view.add_command(label="刷新", accelerator="Command+R") menu_view.add_separator() menu_sort = Menu(self.menu_bar) menu_sort.add_command(label="文件名") menu_sort.add_command(label="文件大小") menu_sort.add_command(label="文件类型") menu_sort.add_command(label="修改时间") menu_view.add_cascade(label="排序", menu=menu_sort) self.menu_bar.add_cascade(label="查看", menu=menu_view) self.menu_view = menu_view
class EguanaMenu(Menu): def __init__(self, parent,delegate): Menu.__init__(self, parent) self.delegate = delegate self.initUI() def initUI(self): self.menu_file = Menu(self) self.menu_file.add_command(label='Load 3D') self.menu_file.add_command(label='Load 2D') self.menu_file.add_command(label='Exit',command=self.delegate.quit) self.add_cascade(menu=self.menu_file, label='File') self.menu_Filter = Menu(self) self.b0 = BooleanVar() self.b1 = BooleanVar() self.b2 = BooleanVar() self.b3 = BooleanVar() self.menu_Filter.add_checkbutton(label="Speech 3D", onvalue=1, offvalue=0, variable=self.b0, command=self.delegate.speech3DButtonPressed) self.menu_Filter.add_checkbutton(label='Speech 2D',onvalue=1, offvalue=0, variable=self.b1, command=self.delegate.speech2DButtonPressed) self.menu_Filter.add_checkbutton(label='Swallow 3D',onvalue=1, offvalue=0, variable=self.b2,command=self.delegate.swallow3DButtonPressed) self.menu_Filter.add_checkbutton(label='Swallow 2D',onvalue=1, offvalue=0, variable=self.b3,command=self.delegate.swallow2DButtonPressed) self.add_cascade(menu=self.menu_Filter, label='Filter') self.entryconfigure('Filter', state = 'disabled') def filterSelected(self,buttonIndex): for i in range(4): if not i == buttonIndex: b = getattr(self,'b'+str(i)) b.set(False)
def __init__(self, master): self.dirname = os.path.abspath( os.curdir ) self.initComplete = 0 self.master = master self.x, self.y, self.w, self.h = -1,-1,-1,-1 # bind master to <Configure> in order to handle any resizing, etc. # postpone self.master.bind("<Configure>", self.Master_Configure) self.master.bind('<Enter>', self.bindConfigure) self.menuBar = Menu(master, relief = "raised", bd=2) self.menuBar.add("command", label = "Change_Dir", command = self.menu_Directory_Change_Dir) disp_Choices = Menu(self.menuBar, tearoff=0) self.display_test_details = StringVar() self.display_test_details.set('N') disp_Choices.add_checkbutton(label='Display Test Details', variable=self.display_test_details, onvalue='Y', offvalue='N') self.display_watched_files = StringVar() self.display_watched_files.set('N') disp_Choices.add_checkbutton(label='Show Watched Files', variable=self.display_watched_files, onvalue='Y', offvalue='N') self.menuBar.add("cascade", label="Display", menu=disp_Choices) py_choices = Menu(self.menuBar, tearoff=0) py_choices.add("command", label = "Change Python Version", command = self.changePythonVersion) py_choices.add("command", label = "Find New Python Interpreter", command = self.findNewPythonInterpreter) py_choices.add("command", label = "Launch Another Python Interpreter", command = self.launchAnotherPythonInterpreter) self.menuBar.add("cascade", label="Python", menu=py_choices) #top_Snippet = Menu(self.menuBar, tearoff=0) self.menuBar.add("command", label = "Run", command = self.menu_Run) self.display_test_details.trace("w", self.rerun_tests) self.display_watched_files.trace("w", self.rerun_tests) master.config(menu=self.menuBar) # make a Status Bar self.statusMessage = StringVar() self.statusMessage.set(self.dirname) self.statusbar = Label(self.master, textvariable=self.statusMessage, bd=1, relief=SUNKEN) self.statusbar.pack(anchor=SW, fill=X, side=BOTTOM) self.statusbar_bg = self.statusbar.cget('bg') # save bg for restore self.arial_12_bold_font = tkinter.font.Font(family="Arial", size=12, weight=tkinter.font.BOLD) self.arial_12_font = tkinter.font.Font(family="Arial", size=12) self.statusbar.config( font=self.arial_12_bold_font ) frame = Frame(master) frame.pack(anchor=NE, fill=BOTH, side=TOP) self.Pass_Fail_Button = Button(frame,text="Pass/Fail Will Be Shown Here", image="", width="15", background="green", anchor=W, justify=LEFT, padx=2) self.Pass_Fail_Button.pack(anchor=NE, fill=X, side=TOP) self.Pass_Fail_Button.bind("<ButtonRelease-1>", self.Pass_Fail_Button_Click) self.master.title("tk_nosy") self.oscillator = 1 # animates character on title self.oscillator_B = 0 # used to return statusbar to statusbar_bg self.lbframe = Frame( frame ) self.lbframe.pack(anchor=SE, side=LEFT, fill=BOTH, expand=1) scrollbar = Scrollbar(self.lbframe, orient=VERTICAL) self.Text_1 = Text(self.lbframe, width="80", height="24", yscrollcommand=scrollbar.set) scrollbar.config(command=self.Text_1.yview) scrollbar.pack(side=RIGHT, fill=Y) self.Text_1.pack(side=LEFT, fill=BOTH, expand=1) self.master.resizable(1,1) # Linux may not respect this self.numNosyCalls = 0 self.need_to_pick_dir = 1 print('sys.argv =',sys.argv) if len(sys.argv)>1: # I don't care what the exception is, if there's a problem, bail # pylint: disable=W0702 print( "Try Dir =",sys.argv[1] ) try: dirname = os.path.abspath( sys.argv[1] ) self.try_change_to_new_dir( dirname ) except Exception: pass # let Alarm force dir selection else: try: if os.path.isdir(os.path.join( self.dirname, 'tests' )): self.try_change_to_new_dir( self.dirname ) except Exception: pass # let Alarm force dir selection print(LICENSE) self.defaultPyInterp = None # need to identify default python interpreter if Tk_Nosy.pythonInterpreterCollection == None: Tk_Nosy.pythonInterpreterCollection = PyInterpsOnSys() self.defaultPyInterp = Tk_Nosy.pythonInterpreterCollection.get_PI_obj_by_py_path( sys.executable ) #print( Tk_Nosy.pythonInterpreterCollection ) self.Alarm()
def init_UI(self): self.frame = ttk.Frame(self) self.frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.new_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/new.gif') self.open_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/open.gif') self.save_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/save.gif') self.cut_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/cut.gif') self.copy_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/copy.gif') self.paste_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/paste.gif') self.undo_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/undo.gif') self.redo_icon = tk.PhotoImage(file='__Final/_PORTFOLIO/_projects/Text Editor/icons/redo.gif') # ------------------------------------- menubar = tk.Menu(self.frame) file = Menu(menubar, tearoff=0) file.add_command(label='New', accelerator='Ctrl+N', compound='left', image=self.new_icon, underline=0, command=self.new) file.add_command(label='Open', accelerator='Ctrl+O', compound='left', image=self.open_icon, underline=0, command=self.open) file.add_command(label='Save', accelerator='Ctrl+S', compound='left', image=self.save_icon, underline=0, command=self.save) file.add_command(label='Save as', accelerator='Shift+Ctrl+S', command=self.saveas) file.add_separator() file.add_command(label='Exit', accelerator='Alt+F4') menubar.add_cascade(label='File', menu=file) edit = Menu(menubar, tearoff=0) edit.add_command(label='Undo', accelerator='Ctrl+Z', compound='left', image=self.undo_icon, command=self.undo) edit.add_command(label='Redo', accelerator='Ctrl+Y', compound='left', image=self.redo_icon, command=self.redo) edit.add_separator() edit.add_command(label='Cut', accelerator='Ctrl+X', compound='left', image=self.cut_icon, command=self.cut) edit.add_command(label='Copy', accelerator='Ctrl+C', compound='left', image=self.copy_icon, command=self.copy) edit.add_command(label='Paste', accelerator='Ctrl+V', compound='left', image=self.paste_icon, command=self.paste) edit.add_separator() edit.add_command(label='Find', underline=0, accelerator='Ctrl+F', command=self.find) edit.add_separator() edit.add_command(label='Select All', underline=7, accelerator='Ctrl+A', command=self.select) menubar.add_cascade(label='Edit', menu=edit) view = Menu(menubar, tearoff=0) self.show_linebar_number = tk.IntVar() self.show_linebar_number.set(1) view.add_checkbutton(label='Show Line Number', variable=self.show_linebar_number, command=self.update_line_numbers) self.show_cursor_info = tk.IntVar() self.show_cursor_info.set(1) view.add_checkbutton(label='Show Cursor Location at Bottom', variable=self.show_cursor_info, command=self.show_statusbar) self.highlight = tk.BooleanVar() view.add_checkbutton(label='Highlight Current Line', onvalue=1, offvalue=0, variable=self.highlight, command=self.toggle_highlight) themes = Menu(menubar, tearoff=0) view.add_cascade(label='Themes', menu=themes) self.theme_choice = tk.StringVar() self.theme_choice.set('Default') for color in sorted(self.color_schemes): themes.add_radiobutton(label=color, variable=self.theme_choice, command=self.change_theme) menubar.add_cascade(label='View', menu=view) about = Menu(menubar, tearoff=0) about.add_command(label='About', command=self.mb_about) about.add_command(label='Help', command=self.mb_help) menubar.add_cascade(label='About', menu=about) self.config(menu=menubar) # ------------------------------------- toolbar = ttk.Frame(self.frame, height=25) toolbar.pack(expand=tk.NO, fill=tk.X) for icon in self.icons: toolbar_icon = tk.PhotoImage(file=f'__Final/_PORTFOLIO/_projects/Text Editor/icons/{icon}.gif') cmd = eval(f'self.{icon}') toolbar_button = ttk.Button(toolbar, image=toolbar_icon, command=cmd) toolbar_button.image = toolbar_icon toolbar_button.pack(side=tk.LEFT, pady=2, padx=(2, 0)) self.linebar = tk.Text(self.frame, background='khaki', width=4, padx=3, takefocus=0, border=0, state=tk.DISABLED, wrap=tk.NONE) self.linebar.pack(side=tk.LEFT, fill=tk.Y) self.textarea = tk.Text(self.frame, wrap=tk.WORD, undo=1, borderwidth=0, highlightthickness=0) self.textarea.pack(expand=tk.YES, fill=tk.BOTH, anchor=tk.CENTER) self.scrollbar = ttk.Scrollbar(self.textarea) self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.scrollbar.config(command=self.on_scroll) self.textarea['yscrollcommand'] = self.on_textscroll self.linebar['yscrollcommand'] = self.on_textscroll # ------------------------------------- self.statusbar = ttk.Frame(self, height=25) self.statusbar.pack(side=tk.TOP, expand=tk.NO, fill=tk.X, anchor=tk.SW) self.cursorinfo = ttk.Label(self.statusbar, text='Line: 1 | Column: 1') self.cursorinfo.pack(anchor=tk.SE) # ------------------------------------- # set up the pop-up menu self.popupmenu = Menu(self.textarea, tearoff=0) for name in ('cut', 'copy', 'paste', 'undo', 'redo'): cmd = eval(f'self.{name}') self.popupmenu.add_command(label=name, compound='left', command=cmd) self.popupmenu.add_separator() self.popupmenu.add_command(label='Select All', underline=7, command=self.select)
def _init_menubar(self, parent): menubar = Menu(parent) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label='Reset Parser', underline=0, command=self.reset, accelerator='Del') filemenu.add_command(label='Print to Postscript', underline=0, command=self.postscript, accelerator='Ctrl-p') filemenu.add_command(label='Exit', underline=1, command=self.destroy, accelerator='Ctrl-x') menubar.add_cascade(label='File', underline=0, menu=filemenu) editmenu = Menu(menubar, tearoff=0) editmenu.add_command(label='Edit Grammar', underline=5, command=self.edit_grammar, accelerator='Ctrl-g') editmenu.add_command(label='Edit Text', underline=5, command=self.edit_sentence, accelerator='Ctrl-t') menubar.add_cascade(label='Edit', underline=0, menu=editmenu) rulemenu = Menu(menubar, tearoff=0) rulemenu.add_command(label='Step', underline=1, command=self.step, accelerator='Space') rulemenu.add_separator() rulemenu.add_command(label='Match', underline=0, command=self.match, accelerator='Ctrl-m') rulemenu.add_command(label='Expand', underline=0, command=self.expand, accelerator='Ctrl-e') rulemenu.add_separator() rulemenu.add_command(label='Backtrack', underline=0, command=self.backtrack, accelerator='Ctrl-b') menubar.add_cascade(label='Apply', underline=0, menu=rulemenu) viewmenu = Menu(menubar, tearoff=0) viewmenu.add_checkbutton(label="Show Grammar", underline=0, variable=self._show_grammar, command=self._toggle_grammar) viewmenu.add_separator() viewmenu.add_radiobutton(label='Tiny', variable=self._size, underline=0, value=10, command=self.resize) viewmenu.add_radiobutton(label='Small', variable=self._size, underline=0, value=12, command=self.resize) viewmenu.add_radiobutton(label='Medium', variable=self._size, underline=0, value=14, command=self.resize) viewmenu.add_radiobutton(label='Large', variable=self._size, underline=0, value=18, command=self.resize) viewmenu.add_radiobutton(label='Huge', variable=self._size, underline=0, value=24, command=self.resize) menubar.add_cascade(label='View', underline=0, menu=viewmenu) animatemenu = Menu(menubar, tearoff=0) animatemenu.add_radiobutton(label="No Animation", underline=0, variable=self._animation_frames, value=0) animatemenu.add_radiobutton(label="Slow Animation", underline=0, variable=self._animation_frames, value=10, accelerator='-') animatemenu.add_radiobutton(label="Normal Animation", underline=0, variable=self._animation_frames, value=5, accelerator='=') animatemenu.add_radiobutton(label="Fast Animation", underline=0, variable=self._animation_frames, value=2, accelerator='+') menubar.add_cascade(label="Animate", underline=1, menu=animatemenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label='About', underline=0, command=self.about) helpmenu.add_command(label='Instructions', underline=0, command=self.help, accelerator='F1') menubar.add_cascade(label='Help', underline=0, menu=helpmenu) parent.config(menu=menubar)
root.columnconfigure(0, weight=2, minsize=150) root.rowconfigure(1, weight=2, minsize=250) root.columnconfigure([0, 2], weight=1, minsize=25) root.rowconfigure(1, weight=2, minsize=50) # Main label that displays the token number number_label = ttk.Label(root, textvariable=num) number_label.config(font=('Verdana 400 bold')) number_label.grid(row=0, column=1) # Buttons layout next_button = ttk.Button(root, text='Next', width=20, command=next_num) next_button.grid(row=1, column=1, padx=10, pady=10) back_button = ttk.Button(root, text='Back', width=10, command=prev_num) back_button.grid(row=1, column=0, padx=10, pady=10) notify_button = ttk.Button(root, text='Notify', width=10, command=playaudio) notify_button.grid(row=1, column=2, padx=10, pady=10) # File menu filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label='Reset', command=reset) filemenu.add_command(label='Quit', command=root.quit) menubar.add_cascade(label='File', menu=filemenu) #Options menu options = Menu(menubar, tearoff=0) options.add_checkbutton(label='Audio', variable=audio_flag) options.add_command(label='Help', command=about) menubar.add_cascade(label='Options', menu=options) root.mainloop()
def create_menus(self): """creates the menus""" # main menu menubar = Menu(self.master) # file menus filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label="New", accelerator="^N", command=self.control.cmd_new) filemenu.add_command(label="Open", accelerator="^O", command=self.control.cmd_open) filemenu.add_command(label="Save", accelerator="^S", command=self.control.cmd_save) filemenu.add_command(label="Save as", command=self.control.cmd_save_as) filemenu.add_separator() filemenu.add_command(label="Exit", command=self.control.cmd_exit) menubar.add_cascade(label="File", menu=filemenu) # edit menus editmenu = Menu(menubar, tearoff=0) editmenu.add_command(label="Undo", accelerator="^Z", command=self.control.cmd_null) editmenu.add_command(label="Redo", accelerator="^C", command=self.control.cmd_null) editmenu.add_separator() editmenu.add_command(label="Cut", accelerator="^X", command=self.control.cmd_null) editmenu.add_command(label="Copy", accelerator="^C", command=self.control.cmd_null) editmenu.add_command(label="Paste", accelerator="^V" , command=self.control.cmd_null) editmenu.add_separator() editmenu.add_command(label="Delete", command = self.control.cmd_null) editmenu.add_separator() editmenu.add_command(label="Select all", command = self.control.cmd_null) menubar.add_cascade(label="Edit", menu=editmenu) # drawing menus drawingmenu = Menu(menubar, tearoff=0) drawingmenu.add_command(label="Select", command=self.control.cmd_null) drawingmenu.add_command(label="Line", command=self.control.cmd_line) drawingmenu.add_command(label="Rectangle", command=self.control.cmd_rectangle) drawingmenu.add_command(label="Circle", command=self.control.cmd_circle) drawingmenu.add_command(label="Group", command=self.control.cmd_null) drawingmenu.add_command(label="Instance", command=self.control.cmd_null) menubar.add_cascade(label="Drawing", menu=drawingmenu) # toolbar menus toolbarmenu = Menu(menubar, tearoff=0) toolbarmenu.add_checkbutton(label='Tools', command=self.control.cmd_tools) menubar.add_cascade(label="Toolbar", menu=toolbarmenu) # help menus helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label="About", command = self.control.cmd_null) menubar.add_cascade(label="Help", menu = helpmenu) self.master.config(menu=menubar) # lock in menubar
def BuildMainFrame(self): from tkinter import Menu, IntVar, StringVar, Toplevel, Listbox, Frame, PanedWindow, Text, Scrollbar, Entry from tkinter import X, N, S, W, E, VERTICAL, TOP, END, DISABLED, RAISED menu = Menu(self.master,activeborderwidth=0,bd=0) self.master.config(menu=menu) filemenu = Menu(menu,tearoff=0,bd=1,activeborderwidth=0) menu.add_cascade(label="File", underline=0, menu=filemenu) filemenu.add_command(label="New", accelerator='Ctrl+N',command=self.NewCommand) filemenu.add_command(label="Open...",accelerator='Ctrl+O', command=self.OpenCommand) filemenu.add_command(label="Save as...",accelerator='Ctrl+S', command=self.SaveCommand) filemenu.add_separator() filemenu.add_command(label="Quit",accelerator='Ctrl+Q', command=self.QuitCommand) self.log_on = IntVar() self.log_on.set(1) self.output_to_file = StringVar() self.output_to_file.set('n') scriptmenu = Menu(menu,tearoff=0,bd=1,activeborderwidth=0) modulenames = ['vmtkscripts'] for modulename in modulenames: scriptsubmenu = self.BuildScriptMenu(menu,modulename) if scriptsubmenu: scriptmenu.add_cascade(label=modulename,menu=scriptsubmenu) editmenu = Menu(menu,tearoff=0,bd=1,activeborderwidth=0) menu.add_cascade(label="Edit",underline=0, menu=editmenu) editmenu.add_cascade(label="Insert script",menu=scriptmenu) editmenu.add_command(label="Insert file name", accelerator='Ctrl+F',command=self.InsertFileName) editmenu.add_separator() editmenu.add_command(label="Clear input", command=self.ClearInputCommand) editmenu.add_command(label="Clear output", command=self.ClearOutputCommand) editmenu.add_command(label="Clear all", command=self.ClearAllCommand) editmenu.add_separator() editmenu.add_checkbutton(label="Log", variable=self.log_on) editmenu.add_separator() editmenu.add_radiobutton(label="No output to file", variable=self.output_to_file,value='n') editmenu.add_radiobutton(label="Write output to file", variable=self.output_to_file,value='w') editmenu.add_radiobutton(label="Append output to file", variable=self.output_to_file,value='a') editmenu.add_command(label="Output file...", command=self.OutputFileCommand) runmenu = Menu(menu,tearoff=0,bd=1,activeborderwidth=0) menu.add_cascade(label="Run", underline=0, menu=runmenu) runmenu.add_command(label="Run all", command=self.RunAllCommand) runmenu.add_command(label="Run current line", command=self.RunLineCommand) runmenu.add_command(label="Run selection", command=self.RunSelectionCommand) helpmenu = Menu(menu,tearoff=0,bd=1,activeborderwidth=0) menu.add_cascade(label="Help", underline=0, menu=helpmenu) helpmenu.add_command(label="Help", underline=0, accelerator='F1',command=self.ShowHelpCommand) helpmenu.add_command(label="About", underline=0, command=self.AboutCommand) self.master.bind("<Control-KeyPress-q>", self.QuitHandler) self.master.bind("<Control-KeyPress-n>", self.NewHandler) self.master.bind("<Control-KeyPress-o>", self.OpenHandler) self.master.bind("<Control-KeyPress-s>", self.SaveHandler) self.master.bind("<Control-KeyPress-f>", self.InsertFileNameHandler) self.master.bind("<KeyPress-F1>", self.ShowHelpHandler) self.master.bind("<KeyPress>", self.KeyPressHandler) self.wordIndex = ['1.0','1.0'] self.suggestionswindow = Toplevel(bg='#ffffff',bd=0,height=50,width=600,highlightthickness=0,takefocus=True) self.suggestionswindow.overrideredirect(1) self.suggestionslist = Listbox(self.suggestionswindow,bg='#ffffff',bd=1,fg='#336699',activestyle='none',highlightthickness=0,height=9) self.suggestionslist.insert(END,"foo") self.suggestionslist.pack(side=TOP,fill=X) self.suggestionswindow.bind("<KeyPress>", self.TopKeyPressHandler) self.suggestionswindow.withdraw() self.master.rowconfigure(0,weight=1) self.master.columnconfigure(0,weight=1) content = Frame(self.master,bd=0,padx=2,pady=2) content.grid(row=0,column=0,sticky=N+S+W+E) content.rowconfigure(0,weight=1,minsize=50) content.rowconfigure(1,weight=0) content.columnconfigure(0,weight=1) panes = PanedWindow(content,orient=VERTICAL,bd=1,sashwidth=8,sashpad=0,sashrelief=RAISED,showhandle=True) panes.grid(row=0,column=0,sticky=N+S+W+E) frame1 = Frame(panes,bd=0) frame1.grid(row=0,column=0,sticky=N+S+W+E) frame1.columnconfigure(0,weight=1) frame1.columnconfigure(1,weight=0) frame1.rowconfigure(0,weight=1) panes.add(frame1,height=300,minsize=20) frame2 = Frame(panes,bd=0) frame2.grid(row=1,column=0,sticky=N+S+W+E) frame2.columnconfigure(0,weight=1) frame2.columnconfigure(1,weight=0) frame2.rowconfigure(0,weight=1) panes.add(frame2,minsize=20) self.text_input = Text(frame1, bg='#ffffff',bd=1,highlightthickness=0) self.text_input.bind("<KeyPress>", self.KeyPressHandler) self.text_input.bind("<Button-3>", self.PopupHandler) self.text_input.bind("<Control-Return>", self.RunKeyboardHandler) self.input_scrollbar = Scrollbar(frame1,orient=VERTICAL,command=self.text_input.yview) self.text_input["yscrollcommand"] = self.input_scrollbar.set self.text_output = Text(frame2,state=DISABLED,bd=1,bg='#ffffff',highlightthickness=0) self.output_scrollbar = Scrollbar(frame2,orient=VERTICAL,command=self.text_output.yview) self.text_output["yscrollcommand"] = self.output_scrollbar.set self.text_entry = Entry(content,bd=1,bg='#ffffff',state=DISABLED,highlightthickness=0) self.text_input.focus_set() self.text_input.grid(row=0,column=0,sticky=N+S+W+E) self.input_scrollbar.grid(row=0,column=1,sticky=N+S+W+E) self.text_output.grid(row=0,column=0,sticky=N+S+W+E) self.output_scrollbar.grid(row=0,column=1,sticky=N+S+W+E) self.text_entry.grid(row=1,column=0,sticky=N+S+W+E) self.popupmenu = Menu(self.text_input, tearoff=1, bd=0) self.popupmenu.add_command(label="Context help", command=self.ShowHelpCommand) self.popupmenu.add_cascade(label="Insert script",menu=scriptmenu) self.popupmenu.add_command(label="Insert file name...", command=self.InsertFileName) self.popupmenu.add_separator() self.popupmenu.add_command(label="Run all", command=self.RunAllCommand) self.popupmenu.add_command(label="Run current line", command=self.RunLineCommand) self.popupmenu.add_command(label="Run selection", command=self.RunSelectionCommand) self.output_stream = TkPadOutputStream(self.text_output) self.input_stream = TkPadInputStream(self.text_entry,self.output_stream)
edit_menu.add_separator() edit_menu.add_command(label='Find', underline=0, accelerator='Ctrl+F', command=find_text) edit_menu.add_separator() edit_menu.add_command(label='Select All', underline=7, accelerator='Ctrl+A', command=select_all) menu_bar.add_cascade(label='Edit', menu=edit_menu) view_menu = Menu(menu_bar, tearoff=0) show_line_number = IntVar() show_line_number.set(1) view_menu.add_checkbutton(label='Show Line Number', variable=show_line_number) show_cursor_info = IntVar() show_cursor_info.set(1) view_menu.add_checkbutton(label='Show Cursor Location at Bottom', variable=show_cursor_info) highlight_line = IntVar() view_menu.add_checkbutton(label='Highlight Current Line', onvalue=1, offvalue=0, variable=highlight_line) themes_menu = Menu(menu_bar, tearoff=0) view_menu.add_cascade(label='Themes', menu=themes_menu) color_schemes = { 'Default': '#000000.#FFFFFF', 'Greygarious': '#83406A.#D1D4D1',
# Set up bitrate checkbutton menu start up state. br_32 = IntVar() br_64 = IntVar() br_128 = IntVar() br_128.set(1) # Start off 128k as default menu option. br_160 = IntVar() br_192 = IntVar() br_256 = IntVar() br_320 = IntVar() # Bitrates menu. file_menu3 = Menu(menu_bar, tearoff=0) menu_bar.add_cascade(label='Bitrate', menu=file_menu3) file_menu3.add_checkbutton(label=' 32kbps - Speech', variable=br_32, command=convert_32) file_menu3.add_checkbutton(label=' 64kbps - Speech', variable=br_64, command=convert_64) file_menu3.add_checkbutton(label='128kbps - Speech', variable=br_128, command=convert_128) file_menu3.add_checkbutton(label='160Kbps - Music', variable=br_160, command=convert_160) file_menu3.add_checkbutton(label='192Kbps - Music', variable=br_192, command=convert_192) file_menu3.add_checkbutton(label='256Kbps - Music', variable=br_256,
def _init_menubar(self, parent): menubar = Menu(parent) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label="Exit", underline=1, command=self.destroy, accelerator="q") menubar.add_cascade(label="File", underline=0, menu=filemenu) actionmenu = Menu(menubar, tearoff=0) actionmenu.add_command(label="Next", underline=0, command=self.next, accelerator="n, Space") actionmenu.add_command(label="Previous", underline=0, command=self.prev, accelerator="p, Backspace") menubar.add_cascade(label="Action", underline=0, menu=actionmenu) optionmenu = Menu(menubar, tearoff=0) optionmenu.add_checkbutton( label="Remove Duplicates", underline=0, variable=self._glue.remove_duplicates, command=self._toggle_remove_duplicates, accelerator="r", ) menubar.add_cascade(label="Options", underline=0, menu=optionmenu) viewmenu = Menu(menubar, tearoff=0) viewmenu.add_radiobutton( label="Tiny", variable=self._size, underline=0, value=10, command=self.resize, ) viewmenu.add_radiobutton( label="Small", variable=self._size, underline=0, value=12, command=self.resize, ) viewmenu.add_radiobutton( label="Medium", variable=self._size, underline=0, value=14, command=self.resize, ) viewmenu.add_radiobutton( label="Large", variable=self._size, underline=0, value=18, command=self.resize, ) viewmenu.add_radiobutton( label="Huge", variable=self._size, underline=0, value=24, command=self.resize, ) menubar.add_cascade(label="View", underline=0, menu=viewmenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label="About", underline=0, command=self.about) menubar.add_cascade(label="Help", underline=0, menu=helpmenu) parent.config(menu=menubar)
class MainWindow(ttk.Frame): def __init__(self, master): # Variables self.url = StringVar() self.url_analyzer = None self.list_of_urls = [] self.url_dict = dict() # Main Window self.master = master self.master.iconbitmap(default=ico_path) self.master.title(string="URL Finder") self.master.minsize(width=300, height=375) self.master.maxsize(width=800, height=375) # Top Menu self.show_all = BooleanVar() self.file = Menu(self.master, tearoff=False) self.file.add_command(label="About", command=self.display_about) self.file.add_command(label="Exit", command=self.master.quit) self.edit = Menu(self.master, tearoff=False) self.edit.add_checkbutton(label="Show All", variable=self.show_all, command=self.update_list) self.menubar = Menu(self.master) self.menubar.add_cascade(label="File", menu=self.file) self.menubar.add_cascade(label="Edit", menu=self.edit) self.master.config(menu=self.menubar) # Right-click menu for entry widget self.right_click_entry = Menu(self.master, tearoff=False) self.right_click_entry.add_command(label="Copy", command=self.copy_from_entry) self.right_click_entry.add_command(label="Paste", command=self.paste_to_entry) # Right-click menu for treeview self.right_click = Menu(self.master, tearoff=False) self.right_click.add_command(label="Copy", command=self.get_selected_url) # Frame containing text box and enter button self.top_frame = ttk.Frame(self.master) self.top_frame.columnconfigure(0, minsize=200, weight=10) self.top_frame.columnconfigure(1, minsize=100, weight=1) # Frame containing urls and scrollbar self.bottom_frame = ttk.Frame(self.master) self.bottom_frame.columnconfigure(0, minsize=260, weight=1000) self.bottom_frame.columnconfigure(1, minsize=25, weight=1) # Url entry box and enter button self.entry = ttk.Entry(self.top_frame, textvariable=self.url) self.entry.bind('<Return>', self.on_enter) self.entry.bind('<Button-3>', self.entry_popup) self.enter = ttk.Button(self.top_frame, text="Find Urls", command=self.on_click) self.entry.grid(row=0, column=0, sticky=W+E, padx=5, pady=5) self.enter.grid(row=0, column=1, sticky=W+E, padx=5, pady=5) # Url list treeview self.list = ttk.Treeview(self.bottom_frame, height=15, columns=['percentage', 'domain']) self.list['show'] = 'headings' self.list.column('#0', width=0) self.list.column('percentage', width=30, minwidth=30, stretch=False) self.list.column('domain', width=250, minwidth=200, stretch=False) self.list.heading('percentage', text="%") self.list.heading('domain', text='Domain') self.list.bind('<Control-c>', self.ctrl_c) self.list.bind('<Button-3>', self.treeview_popup) self.list.grid(row=1, column=0, sticky=W+E+N+S, padx=5, pady=5) # Scrollbar widget self.scrollbar = ttk.Scrollbar(self.bottom_frame) self.scrollbar.grid(column=1, row=1, sticky=N+S+E+W) self.list.config(yscrollcommand=self.scrollbar.set) self.scrollbar.config(command=self.list.yview) self.top_frame.pack(fill=BOTH) self.bottom_frame.pack(fill=BOTH) def populate_list(self, url_percentage): del self.list_of_urls[:] for url, percentage in sorted(url_percentage.items(), key=lambda x: x[1]): if self.show_all.get() is True: row = (str(round(percentage)), url) self.list_of_urls.append(row) else: if percentage >= 1: row = (str(round(percentage)), url) self.list_of_urls.append(row) for row in self.list_of_urls: self.list.insert('', 0, values=row) def on_click(self): self.list.delete(*self.list.get_children()) self.enter.config(text="Running") url = self.url.get() t = threading.Thread(target=self.run_scan, args=(url,)) t.start() def run_scan(self, url): pm = ProcessManager(url) pm.start() count = 0 while pm.continue_scanning: time.sleep(1) count += 1 # This is to keep the system from reaching a timeout if count > 20: logging.info("Reached max timeout") pm.analyze_potential_urls() break self.url_dict = pm.url_percentage self.populate_list(pm.url_percentage) self.enter.config(text="Find Urls") def ctrl_c(self, event): self.get_selected_url() def add_to_clipboard(self, copy): self.master.clipboard_clear() self.master.clipboard_append(copy) def get_from_clipboad(self): return self.master.clipboard_get() def get_selected_url(self): curr_item = self.list.focus() item_dict = self.list.item(curr_item) self.add_to_clipboard(item_dict['values'][1]) def paste_to_entry(self): self.url.set(self.get_from_clipboad()) def copy_from_entry(self): self.add_to_clipboard(self.url.get()) def treeview_popup(self, event): item = self.list.identify_row(event.y) # Get Row self.list.selection_set(item) # Highlight Row self.list.focus(item) # Focus Row self.right_click.post(event.x_root, event.y_root) # Popup menu def entry_popup(self, event): self.right_click_entry.post(event.x_root, event.y_root) def on_enter(self, event): self.on_click() def update_list(self): self.list.delete(*self.list.get_children()) self.populate_list(self.url_dict) def display_about(self): about = "Supporting Url Finder Version: %s" % VERSION messagebox.showinfo("About", about)
def __init__( self, f: tk.Frame, menu: tk.Menu, *, cmd_clear: Callable[[], None], cmd_shuffle: Callable[[], None], get_items: Callable[[], list[tuple[str, int]]], set_items: Callable[[Palette], None], ) -> None: """Initialises the palette pane. The parameters are used to communicate with the item list: - cmd_clear and cmd_shuffle are called to do those actions to the list. - pal_get_items is called to retrieve the current list of selected items. - cmd_save_btn_state is the .state() method on the save button. - cmd_set_items is called to apply a palette to the list of items. """ self.palettes: dict[UUID, Palette] = { pal.uuid: pal for pal in paletteLoader.load_palettes() } try: self.selected_uuid = UUID(hex=BEE2_config.GEN_OPTS.get_val( 'Last_Selected', 'palette_uuid', '')) except ValueError: self.selected_uuid = UUID_PORTAL2 f.rowconfigure(1, weight=1) f.columnconfigure(0, weight=1) self.var_save_settings = tk.BooleanVar( value=BEE2_config.GEN_OPTS.get_bool('General', 'palette_save_settings')) self.var_pal_select = tk.StringVar(value=self.selected_uuid.hex) self.get_items = get_items self.set_items = set_items # Overwritten to configure the save state button. self.save_btn_state = lambda s: None ttk.Button( f, text=gettext('Clear Palette'), command=cmd_clear, ).grid(row=0, sticky="EW") self.ui_treeview = treeview = ttk.Treeview(f, show='tree', selectmode='browse') self.ui_treeview.grid(row=1, sticky="NSEW") self.ui_treeview.tag_bind(TREE_TAG_PALETTES, '<ButtonPress>', self.event_select_tree) # Avoid re-registering the double-lambda, just do it here. # This makes clicking the groups return selection to the palette. evtid_reselect = self.ui_treeview.register(self.treeview_reselect) self.ui_treeview.tag_bind( TREE_TAG_GROUPS, '<ButtonPress>', lambda e: treeview.tk.call('after', 'idle', evtid_reselect)) # And ensure when focus returns we reselect, in case it deselects. f.winfo_toplevel().bind('<FocusIn>', lambda e: self.treeview_reselect(), add=True) scrollbar = tk_tools.HidingScroll( f, orient='vertical', command=self.ui_treeview.yview, ) scrollbar.grid(row=1, column=1, sticky="NS") self.ui_treeview['yscrollcommand'] = scrollbar.set self.ui_remove = ttk.Button( f, text=gettext('Delete Palette'), command=self.event_remove, ) self.ui_remove.grid(row=2, sticky="EW") if tk_tools.USE_SIZEGRIP: ttk.Sizegrip(f).grid(row=2, column=1) self.ui_menu = menu self.ui_group_menus: dict[str, tk.Menu] = {} self.ui_group_treeids: dict[str, str] = {} menu.add_command( label=gettext('Clear'), command=cmd_clear, ) menu.add_command( # Placeholder.. label=gettext('Delete Palette'), # This name is overwritten later command=self.event_remove, ) self.ui_menu_delete_index = menu.index('end') menu.add_command( label=gettext('Change Palette Group...'), command=self.event_change_group, ) self.ui_menu_regroup_index = menu.index('end') menu.add_command( label=gettext('Rename Palette...'), command=self.event_rename, ) self.ui_menu_rename_index = menu.index('end') menu.add_command( label=gettext('Fill Palette'), command=cmd_shuffle, ) menu.add_separator() menu.add_checkbutton( label=gettext('Save Settings in Palettes'), variable=self.var_save_settings, ) menu.add_separator() menu.add_command( label=gettext('Save Palette'), command=self.event_save, accelerator=tk_tools.ACCEL_SAVE, ) self.ui_menu_save_ind = menu.index('end') menu.add_command( label=gettext('Save Palette As...'), command=self.event_save_as, accelerator=tk_tools.ACCEL_SAVE_AS, ) menu.add_separator() self.ui_menu_palettes_index = menu.index('end') + 1 self.update_state()
class MainApp(): def __init__(self): self.File_name = None self.Programe_Name = "CHE-Editor" self.WDG = Tk() self.WDG.title(self.Programe_Name) self.WDG.iconbitmap("icons/icon_editor.ico") self.WDG.geometry("860x620") self.WDG.maxsize(width=1340, height=700) self.WDG.minsize(width=860, height=620) self.Main_UI() def Main_UI(self): self.MenuBar = Menu(self.WDG) #1 #MenuBar #File_menu self.File_menu = Menu(self.MenuBar, tearoff=0, title="File") self.MenuBar.add_cascade(label="File", menu=self.File_menu) #Edit_menu self.Edit_menu = Menu(self.MenuBar, tearoff=0, title="Edit") self.MenuBar.add_cascade(label="Edit", menu=self.Edit_menu) #View_menu self.View_menu = Menu(self.MenuBar, tearoff=0, title="View") self.MenuBar.add_cascade(label="View", menu=self.View_menu) #Theme_menu in View self.Theme_menu = Menu(self.View_menu, tearoff=0, title="Theme") self.View_menu.add_cascade(label="Theme", menu=self.Theme_menu) #Option_menu self.Options_menu = Menu(self.MenuBar, tearoff=0, title="Options") self.MenuBar.add_cascade(label="Options", menu=self.Options_menu) #Help_menu self.Help_menu = Menu(self.MenuBar, tearoff=0, title="Help") self.MenuBar.add_cascade(label="Help", menu=self.Help_menu) #2 #Icons Variables #Edit_Menu Icons Undo = PhotoImage(file="icons/Undo.gif") Redo = PhotoImage(file="icons/redo.gif") Paste = PhotoImage(file="icons/paste.gif") Copy = PhotoImage(file="icons/copy.gif") Cut = PhotoImage(file="icons/cut.gif") #Help_Menu_Icons Help = PhotoImage(file="icons/help.gif") About = PhotoImage(file="icons/about.gif") #File_Menu_Icons New = PhotoImage(file="icons/new.gif") Open = PhotoImage(file="icons/open.gif") Save = PhotoImage(file="icons/save.gif") Save_As = PhotoImage(file="icons/save_as.gif") Exit = PhotoImage(file="icons/exit.gif") #Appear menubar in app self.WDG.config(menu=self.MenuBar) #self.WDG.config(menu=self.IconBar) #3 #Set commands in menus #File_Menu self.File_menu.add_command(label="New", accelerator="Ctrl+N", compound="left", underline=0, command=self.New) self.File_menu.add_command(label="Open", accelerator="Ctrl+O", compound="left", underline=0, command=self.Open) self.File_menu.add_command(label="Save", accelerator="Ctrl+S", compound="left", underline=0, command=self.Save) self.File_menu.add_command(label="Save as", accelerator="Shift+Ctrl+S", compound="left", underline=0, command=self.Save_As) self.File_menu.add_separator() self.File_menu.add_command(label="Exit", accelerator="F4", compound="left", underline=0, command=self.Exit) #Edit_Menu self.Edit_menu.add_command(label="Undo", accelerator="Ctrl+Z", compound="left", underline=0, command=self.Undo) self.Edit_menu.add_command(label="Redo", accelerator='Ctrl+Y', compound='left', underline=0, command=self.Redo) self.Edit_menu.add_command(label="Select all", accelerator='Ctrl+A', compound='left', underline=0, command=self.Select) self.Edit_menu.add_command(label="Cut", accelerator='Ctrl+X', compound='left', underline=7, command=self.Cut) self.Edit_menu.add_command(label="Copy", accelerator='Ctrl+C', compound='left', underline=0, command=self.Copy) self.Edit_menu.add_command(label="Paste", accelerator='Ctrl+V', compound='left', underline=0, command=self.Paste) self.Edit_menu.add_command(label="Search", accelerator='Ctrl+F', compound='left', underline=0, command=self.Search) #Help_Menu self.Help_menu.add_command(label="Help", accelerator="F1", compound="left", underline=0, command=self.Help) self.Help_menu.add_command(label="About", compound="left", underline=0, command=self.About) #View_Menu self.Show_line_number = IntVar() self.Show_line_number.set(1) self.theme_name = StringVar() self.View_menu.add_checkbutton(label="Show Line Number", variable=self.Show_line_number) self.Highlightline = BooleanVar() self.View_menu.add_checkbutton(label='Highlight Current Line', onvalue=1, offvalue=0, variable=self.Highlightline, command=self.Toggle_highlight) self.cursorcoord = BooleanVar() self.View_menu.add_checkbutton(label='Show Cursor Location', variable=self.cursorcoord, command=self.Show_cursor_coord) self.Theme_menu.add_radiobutton(label="Default", variable=self.theme_name) #4 #add Shortcut_Bar & Row_Number_Bar #Shortcut_Bar self.Shortcut_Bar = Frame(self.WDG, height=25) self.Shortcut_Bar.pack(expand='no', fill='x') Icons = ['New', 'Open', 'Save', 'Copy', 'Cut', 'Paste', 'Undo', 'Redo'] for i, icon in enumerate(Icons): Tool_icon = PhotoImage(file='icons/{}.gif'.format(icon)) #c_var = 'self.{}'.format(icon) cmd = eval('self.{}'.format(icon)) self.Tool_bar_btn = Button(self.Shortcut_Bar, image=Tool_icon, command=cmd) self.Tool_bar_btn.image = Tool_icon self.Tool_bar_btn.pack(side='left') #Row_Number_Bar self.Row_Number_Bar = Text(self.WDG, width=3, padx=3, takefocus=0, border=0, background='khaki', state='disabled', wrap='none') self.Row_Number_Bar.pack(side='left', fill='y') #5 #add Content_Text self.Content_Text = Text(self.WDG, wrap='word', undo=1) self.Content_Text.pack(expand='yes', fill='both') self.Content_Text.tag_configure('active_line', background='ivory2') self.Scroll_Bar = Scrollbar(self.Content_Text) self.Content_Text.configure(yscrollcommand=self.Scroll_Bar.set) self.Scroll_Bar.config(command=self.Content_Text.yview) self.Scroll_Bar.pack(side='right', fill='y') #6 #add_Cursor_Coord_Bar self.Cursor_Coord_Bar = Label(self.Content_Text, text='Row: 1 | Column: 1') self.Cursor_Coord_Bar.pack(fill=None, expand='no', side='right', anchor='se') #7 #Binding self.Content_Text.bind("<Control-o>", self.Open) self.Content_Text.bind("<Control-O>", self.Open) self.Content_Text.bind("<Control-s>", self.Save) self.Content_Text.bind("<Control-S>", self.Save) self.Content_Text.bind("<Shift-Control-KeyPress-s>", self.Save_As) self.Content_Text.bind("<Shift-Control-KeyPress-S>", self.Save_As) self.Content_Text.bind("<Control-n>", self.New) self.Content_Text.bind("<Control-N>", self.New) self.Content_Text.bind("<Control-z>", self.Undo) self.Content_Text.bind("<Control-Z>", self.Undo) self.Content_Text.bind("<Control-y>", self.Redo) self.Content_Text.bind("<Control-Y>", self.Redo) self.Content_Text.bind("<Control-x>", self.Cut) self.Content_Text.bind("<Control-X>", self.Cut) self.Content_Text.bind("<Control-a>", self.Select) self.Content_Text.bind("<Control-A>", self.Select) self.Content_Text.bind("<Control-c>", self.Copy) self.Content_Text.bind("<Control-C>", self.Copy) self.Content_Text.bind("<Control-v>", self.Paste) self.Content_Text.bind("<Control-V>", self.Paste) self.Content_Text.bind("<Control-f>", self.Search) self.Content_Text.bind("<Control-F>", self.Search) self.Content_Text.bind("<Any-KeyPress>", self.Content_changed) self.WDG.bind_all("<KeyPress-F1>", self.Help) self.WDG.bind_all("<KeyPress-F4>", self.Exit) #8 #Built In Finctions #File_Menu_Functions def New(self, event=None): self.Content_Text.delete(1., 'end') self.WDG.title('{} - {}'.format('Untitled', self.Programe_Name)) ## def Open(self, event=None): self.Open_file_name = filedialog.askopenfilename( defaultextension=".txt", filetypes=[("All Files", "*.*"), ("Text Documents", "*.txt")]) if self.Open_file_name: self.File_name = self.Open_file_name self.WDG.title("{} - {}".format(os.path.basename(self.File_name), self.Programe_Name)) self.Content_Text.delete(1.0, 'end') with open(self.File_name) as _File: self.Content_Text.insert(1.0, _File.read()) ## def Save(self, event=None): if not self.File_name: self.Save_As() else: self.Write_to_file(self.File_name) return "break" ## def Save_As(self, event=None): self.Save_file_name = filedialog.asksaveasfilename( defaultextension='.txt', filetypes=[('All Files', '*.*'), ('Text Documents', '*.txt')]) if self.Save_file_name: self.File_name = self.Save_file_name self.Write_to_file(self.File_name) self.WDG.title('{} - {}'.format(os.path.basename(self.File_name), self.Programe_Name)) return "break" ## def Write_to_file(self, filename): try: self.content = self.Content_Text.get(1.0, 'end') with open(self.File_name, 'w') as the_file: the_file.write(self.content) except IOError as er: print(er) ## def Exit(self, event=None): self.msg_exit = messagebox.askyesno('Exit Editor', 'Do you want to exit?') if self.msg_exit: self.WDG.destroy() #Edit_Menu_Functions ## def Select(self, event=None): self.Content_Text.tag_add("sel", 1.0, "end") print("Done1") return "breake" ## def Cut(self, event=None): self.Content_Text.event_generate("<<Cut>>") return "breake" ## def Copy(self, event=None): self.Content_Text.event_generate("<<Copy>>") return "breake" ## def Paste(self, event=None): self.Content_Text.event_generate("<<Paste>>") return "breake" ## def Undo(self, event=None): self.Content_Text.event_generate("<<Undo>>") return "breake" ## def Redo(self, event=None): self.Content_Text.event_generate("<<Redo>>") return "breake" ## def Search(self, event=None): self.Search_Window = Toplevel(self.WDG) self.Search_Window.title("Search About...") self.Search_Window.transient(self.WDG) self.Search_Window.resizable(False, False) self.S_lbl_1 = Label(self.Search_Window, text='Search About :') self.S_lbl_1.grid(row=0, column=0, sticky='e') self.S_ent_1 = Entry(self.Search_Window, width=28) self.S_ent_1.grid(row=0, column=1, padx=2, pady=2, sticky='we') self.S_ent_1.focus_set() Ignore_case_value = IntVar() self.S_chk_1 = Checkbutton(self.Search_Window, text='Ignor Case', variable=Ignore_case_value) self.S_chk_1.grid(row=1, column=1, padx=2, pady=2, sticky='e') self.S_btn_1 = Button( self.Search_Window, text='Find', underline=0, command=lambda: self.Search_results(self.S_ent_1.get( ), Ignore_case_value.get(), self.Content_Text, self.Search_Window, self.S_ent_1)) self.S_btn_1.grid(row=0, column=2, padx=2, pady=2, sticky='e' + 'w') self.S_btn_2 = Button(self.Search_Window, text='Cancel', underline=0, command=self.Close_Search_Window) self.S_btn_2.grid(row=1, column=2, padx=2, pady=2, sticky='e' + 'w') ## def Search_results(self, Keyword, IfIgnoreCase, Content, Output, Input): Content.tag_remove('match', '1.0', 'end') matches_found = 0 if Keyword: start_pos = '1.0' while True: start_pos = Content.search(Keyword, start_pos, nocase=IfIgnoreCase, stopindex='end') if not start_pos: break end_pos = "{} + {}c".format(start_pos, len(Keyword)) Content.tag_add('match', start_pos, end_pos) matches_found += 1 start_pos = end_pos Content.tag_config('match', foreground='red', background='yellow') Input.focus_set() Output.title("{} matches found".format(matches_found)) ## def Close_Search_Window(self): self.Content_Text.tag_remove('match', '1.0', 'end') self.Search_Window.destroy() #self.Search_Window.protocol('WM_DELETE_WINDOW',self.Close_Search_Window) return "break" #View_Menu_Functions ## def Content_changed(self, event=None): self.Update_line_numbers() self.Update_cursor_coord() ## def Get_line_numbers(self, event=None): self.Number = "" if self.Show_line_number.get(): self.Row, self.Column = self.Content_Text.index('end').split('.') for i in range(1, int(self.Row)): self.Number += str(i) + "\n" return self.Number ## def Update_line_numbers(self): self.Line_Number = self.Get_line_numbers() self.Row_Number_Bar.config(state='normal') self.Row_Number_Bar.delete(1.0, 'end') self.Row_Number_Bar.insert(1.0, self.Line_Number) self.Row_Number_Bar.config(state='disabled') ## def Toggle_highlight(self, event=None): if self.Highlightline.get(): self.Highlight_line() else: self.Undo_highlight() ## def Highlight_line(self, interval=100): self.Content_Text.tag_remove('active_line', 1.0, 'end') self.Content_Text.tag_add('active_line', "insert linestart", "insert lineend+1c") self.Content_Text.after(interval, self.Toggle_highlight) ## def Undo_highlight(self): self.Content_Text.tag_remove('active_line', 1.0, 'end') ## def Show_cursor_coord(self): self.cursor_coord_checked = self.cursorcoord.get() if self.cursor_coord_checked: self.Cursor_Coord_Bar.pack(expand='no', fill=None, side='right', anchor='se') else: self.Cursor_Coord_Bar.pack_forget() ## def Update_cursor_coord(self): self.Row_2, self.Column_2 = self.Content_Text.index('insert').split( '.') self.row_num, self.col_num = str(int( self.Row_2)), str(int(self.Column_2) + 1) self.Coord = "Row: {} | Column: {}".format(self.row_num, self.col_num) self.Cursor_Coord_Bar.config(text=self.Coord) #Help_Menu_Functions ## def About(self, event=None): messagebox.showinfo( 'About', '{} {}'.format(self.Programe_Name, '\nDeveloped by \n TaReK')) ## def Help(self, event=None): messagebox.showinfo('Help', 'Text Editor building in python', icon='question')
def _init_menubar(self, parent): menubar = Menu(parent) filemenu = Menu(menubar, tearoff=0) filemenu.add_command(label='Reset Parser', underline=0, command=self.reset, accelerator='Del') filemenu.add_command(label='Print to Postscript', underline=0, command=self.postscript, accelerator='Ctrl-p') filemenu.add_command(label='Exit', underline=1, command=self.destroy, accelerator='Ctrl-x') menubar.add_cascade(label='File', underline=0, menu=filemenu) editmenu = Menu(menubar, tearoff=0) editmenu.add_command(label='Edit Grammar', underline=5, command=self.edit_grammar, accelerator='Ctrl-g') editmenu.add_command(label='Edit Text', underline=5, command=self.edit_sentence, accelerator='Ctrl-t') menubar.add_cascade(label='Edit', underline=0, menu=editmenu) rulemenu = Menu(menubar, tearoff=0) rulemenu.add_command(label='Step', underline=1, command=self.step, accelerator='Space') rulemenu.add_separator() rulemenu.add_command(label='Match', underline=0, command=self.match, accelerator='Ctrl-m') rulemenu.add_command(label='Expand', underline=0, command=self.expand, accelerator='Ctrl-e') rulemenu.add_separator() rulemenu.add_command(label='Backtrack', underline=0, command=self.backtrack, accelerator='Ctrl-b') menubar.add_cascade(label='Apply', underline=0, menu=rulemenu) viewmenu = Menu(menubar, tearoff=0) viewmenu.add_checkbutton(label="Show Grammar", underline=0, variable=self._show_grammar, command=self._toggle_grammar) viewmenu.add_separator() viewmenu.add_radiobutton(label='Tiny', variable=self._size, underline=0, value=10, command=self.resize) viewmenu.add_radiobutton(label='Small', variable=self._size, underline=0, value=12, command=self.resize) viewmenu.add_radiobutton(label='Medium', variable=self._size, underline=0, value=14, command=self.resize) viewmenu.add_radiobutton(label='Large', variable=self._size, underline=0, value=18, command=self.resize) viewmenu.add_radiobutton(label='Huge', variable=self._size, underline=0, value=24, command=self.resize) menubar.add_cascade(label='View', underline=0, menu=viewmenu) animatemenu = Menu(menubar, tearoff=0) animatemenu.add_radiobutton(label="No Animation", underline=0, variable=self._animation_frames, value=0) animatemenu.add_radiobutton(label="Slow Animation", underline=0, variable=self._animation_frames, value=10, accelerator='-') animatemenu.add_radiobutton(label="Normal Animation", underline=0, variable=self._animation_frames, value=5, accelerator='=') animatemenu.add_radiobutton(label="Fast Animation", underline=0, variable=self._animation_frames, value=2, accelerator='+') menubar.add_cascade(label="Animate", underline=1, menu=animatemenu) helpmenu = Menu(menubar, tearoff=0) helpmenu.add_command(label='About', underline=0, command=self.about) helpmenu.add_command(label='Instructions', underline=0, command=self.help, accelerator='F1') menubar.add_cascade(label='Help', underline=0, menu=helpmenu) parent.config(menu=menubar)
edit_menu.add_command(label="Find", underline=0, accelerator="Ctrl+F", command=find_text) edit_menu.add_separator() edit_menu.add_command(label="Select All", underline=7, accelerator="Ctrl+A", command=select_all) menu_bar.add_cascade(label="Edit", menu=edit_menu) view_menu = Menu(menu_bar, tearoff=0) show_line_number = IntVar() show_line_number.set(1) view_menu.add_checkbutton(label="Show Line Number", variable=show_line_number, command=update_line_numbers) show_cursor_info = IntVar() show_cursor_info.set(1) view_menu.add_checkbutton( label="Show Cursor Location at Bottom", variable=show_cursor_info, command=show_cursor_info_bar, ) to_highlight_line = BooleanVar() view_menu.add_checkbutton( label="Highlight Current Line", onvalue=1, offvalue=0, variable=to_highlight_line, command=toggle_highlight,
def main(keyboard_callback) -> None: global window, p try: sg.set_options(icon=resource_path("ampel_plot.png")) sg.theme('SystemDefault1') layout = [ [ sg.Multiline(size=(85, 20), font=('Helvetica', 12), justification='left', key='text', autoscroll=True, auto_refresh=True) ], [ *_ltxt('stack', 20, tooltip=' Max # of plots to display per tab/window '), *_ltxt('scale', 1.0, tooltip=' Image scale factor '), _chkbox('debug', tooltip=' Increase verbosity '), _chkbox('html', default=True, tooltip=' HTML output format (includes plot titles) '), _chkbox('Tight layout', key='tight', tooltip=' Suppress botton margins '), _chkbox('png', enable_events=True, tooltip=' Convert SVG to PNG '), sg.Column( [[_itxt('dpi', 96, tooltip=' SVG quality '), _txt('dpi')]], key='coldpi', pad=(0, 0), visible=False) ], [sg.Button('Apply', pad=10), sg.Push(), sg.Button('Exit', pad=10)] ] window = sg.Window('AmpelPlot', layout, finalize=True) set_print(_print) on_top = BooleanVar() menubar = Menu(window.TKroot) vm = Menu(menubar, tearoff=0) vm.add_checkbutton( label="Always on top", onvalue=1, offvalue=0, variable=on_top, command=lambda: window.keep_on_top_set() if on_top.get() else window.keep_on_top_clear() # type: ignore ) menubar.add_cascade(label="View ", menu=vm) # space in on purpose window.TKroot.config(menu=menubar) window.TKroot.protocol("WM_DELETE_WINDOW", goodbye) window.TKroot.tk.createcommand('::tk::mac::Quit', goodbye) window.TKroot.master.attributes("-fullscreen", True) while True: read_from_clipboard(PlotBrowseOptions( debug=window['debug'].get(), html=window['html'].get(), png=int(window['dpi'].get()) if window['png'].get() else None, max_size=float(window['max_size'].get()), scale=float(window['scale'].get()), stack=int(window['stack'].get())), keyboard_callback=keyboard_callback, gui_callback=window_callback, exit_on_interrupt=False) except Exception as e: import traceback with open('AmpelPlot_error.log', 'w') as f: f.write(f"{e}\n") traceback.print_exc(file=f)
def __init__(self): ''' None -> None Builds the Tkinter window and all his elements. ''' # variables ---------------------------------------------------- # log file open("erros.log", "w").close() # to open and clean the logfile logging.basicConfig(level=logging.DEBUG, filename='erros.log') sys.stderr = LogFile('stderr') # Redirect stderr self.original_working_dir = os.getcwd() # original working dir self.master = Tk() # Tk() object self.master.title('EXCEL to KMZ Transformer - ver. 1.6') # window name icons = os.getcwd() + os.sep + "icons" + os.sep # path to icons foto_folder = os.getcwd() + os.sep + "fotos" # path to fotos icon = icons + "compass.ico" self.master.iconbitmap(icon) # window icon self.master.resizable(width=FALSE, height=FALSE) self.master.geometry("548x314") self.file_name = "" # the name of the EXEL file self.last_dir = "C:/" # image to decorate the window self.img = ImageTk.PhotoImage(Image.open(icons + "excel-kmz.jpg")) # to use in frame, message, labels and buttons ----------------- self.message = StringVar() self.message.set("\nSelecciona um ficheiro EXCEL") bg = "gray25" bg1 = "dark orange" fc = "white smoke" font = ("Helvetica", "8", "bold") text0 = " ----- " # " ------------------------------------------ " text1 = " Boris & Vladimir Software " text = text0 + text1 + text0 # Menu --------------------------------------------------------- self.menu = Menu(self.master) self.master.config(menu=self.menu) filemenu = Menu(self.menu) self.menu.add_cascade(label="Ficheiro", menu=filemenu) filemenu.add_command(label="Sair", command=self.__callback_3) filemenu.add_command(label='Pasta Fotos', command=lambda: (self.__open_folder(foto_folder))) # --------------------- NOVO ----------------------------------- self.openGE = BooleanVar() # não esquecer de importar BooleanVar self.openGE.set(False) optionsmenu = Menu(self.menu) self.menu.add_cascade(label="Opções", menu=optionsmenu) optionsmenu.add_checkbutton(label="Não abrir o Google Earth", onvalue=True, offvalue=False, variable=self.openGE) docsmenu = Menu(self.menu) docs = ["docs\manual.pdf", "docs\icons.pdf", "docs\colors.pdf", "docs\GPS.xlsx", "docs\GPS.kmz", "docs\Celulas.xlsx", "docs\Celulas.kmz", "docs\Foto.xlsx", "docs\Foto.kmz", "docs\Quadrado.xls", "docs\Quadrado.kmz"] self.menu.add_cascade(label="Documentação", menu=docsmenu) docsmenu.add_command(label="Manual", command=lambda: (self.__open_file(docs[0]))) docsmenu.add_command(label="Ícones", command=lambda: (self.__open_file(docs[1]))) docsmenu.add_command(label="Cores", command=lambda: (self.__open_file(docs[2]))) exemplemenu = Menu(docsmenu) docsmenu.add_cascade(label="Exemplos", menu=exemplemenu) gpsmenu = Menu(exemplemenu) exemplemenu.add_cascade(label="Trajetos", menu=gpsmenu) gpsmenu.add_command(label="Excel", command=lambda: (self.__open_file(docs[3]))) gpsmenu.add_command(label="Google Earth", command=lambda: (self.__open_file(docs[4]))) cellmenu = Menu(exemplemenu) exemplemenu.add_cascade(label="Células Telefónicas", menu=cellmenu) cellmenu.add_command(label="Excel", command=lambda: (self.__open_file(docs[5]))) cellmenu.add_command(label="Google Earth", command=lambda: (self.__open_file(docs[6]))) fotomenu = Menu(exemplemenu) exemplemenu.add_cascade(label="Fotos", menu=fotomenu) fotomenu.add_command(label="Excel", command=lambda: (self.__open_file(docs[7]))) fotomenu.add_command(label="Google Earth", command=lambda: (self.__open_file(docs[8]))) squaremenu = Menu(exemplemenu) exemplemenu.add_cascade(label="Quadrado", menu=squaremenu) squaremenu.add_command(label="Excel", command=lambda: (self.__open_file(docs[9]))) squaremenu.add_command(label="Google Earth", command=lambda: (self.__open_file(docs[10]))) helpmenu = Menu(self.menu) self.menu.add_cascade(label='Ajuda', menu=helpmenu) helpmenu.add_command(label="Sobre", command=self.__about) helpmenu.add_command(label="Ver erros", command=lambda: (self.__open_file("erros.log"))) # Frame to suport butons, labels and separators ---------------- self.f = Frame(self.master, bg=bg) self.f.pack_propagate(0) # don't shrink self.f.pack(side=BOTTOM, padx=0, pady=0) # Message and Labels ------------------------------------------- self.l1 = Message( self.f, bg=bg1, bd=5, fg=bg, textvariable=self.message, font=("Helvetica", "13", "bold italic"), width=500).grid( row=0, columnspan=6, sticky=EW, padx=5, pady=5) self.l2 = Label( self.f, image=self.img, fg=bg ).grid(row=1, columnspan=6, padx=5, pady=2) self.l6 = Label( self.f, text=text, font=("Helvetica", "11", "bold"), bg=bg, fg=bg1 ).grid(row=3, column=2, columnspan=3, sticky=EW, pady=5) # Buttons ------------------------------------------------------ self.b0 = Button( self.f, text="Abrir EXCEL...", command=self.__callback, width=10, bg="forest green", fg=fc, font=font ).grid(row=3, column=0, padx=5, sticky=W) self.b1 = Button( self.f, text="Gravar KMZ", command=self.__callback_2, width=10, bg="DodgerBlue4", fg=fc, font=font ).grid(row=3, column=1, sticky=W) self.b2 = Button( self.f, text="Sair", command=self.__callback_3, width=10, bg="orange red", fg=fc, font=font ).grid(row=3, column=5, sticky=E, padx=5) # Separator ---------------------------------------------------- # self.s = ttk.Separator(self.f, orient=HORIZONTAL).grid( # row=4, columnspan=5, sticky=EW, padx=5, pady=5) # Progressbar -------------------------------------------------- # self.pb = Canvas(self.f, width=260, height=10) self.s = ttk.Style() # themes: winnative, clam, alt, default, classic, vista, xpnative self.s.theme_use('winnative') self.s.configure("red.Horizontal.TProgressbar", foreground='green', background='forest green') self.pb = ttk.Progressbar(self.f, orient='horizontal', mode='determinate', style="red.Horizontal.TProgressbar") self.pb.grid(row=2, column=0, columnspan=6, padx=5, pady=5, sticky=EW) # Mainloop ----------------------------------------------------- self.master.mainloop()