def main(): top = tix.Tk() nb = tix.NoteBook(top, width=300, height=200) nb.pack(expand=True, fill="both") nb.add("page1", label="text") f1 = tix.Frame(nb.subwidget("page1")) st = tix.ScrolledText(f1) st.subwidget("text").insert("1.0", "Here is where the text goes...") st.pack(expand=True) f1.pack() nb.add("page2", label="Message Boxes") f2 = tix.Frame(nb.subwidget("page2")) # 通过联合使用expand,fill和anchor,在窗口大小改变时,可以精确地控制小部件的行为 tix.Button( f2, text="error", bg="lightblue", command=lambda t="error", m="This is bad!": mb.showerror(t, m)).pack( fill="x", expand=True) tix.Button( f2, text="info", bg="pink", command=lambda t="info", m="Information": mb.showinfo(t, m)).pack( fill="x", expand=True) tix.Button(f2, text="warning", bg="yellow", command=lambda t="warning", m="Don't do it!": mb.showwarning( t, m)).pack(fill="x", expand=True) tix.Button( f2, text="question", bg="green", command=lambda t="question", m="Will I?": mb.askquestion(t, m)).pack( fill="x", expand=True) tix.Button(f2, text="yes - no", bg="lightgrey", command=lambda t="yes - no", m="Are you sure?": mb.askyesno( t, m)).pack(fill="x", expand=True) tix.Button(f2, text="yes - no - cancel", bg="black", fg="white", command=lambda t="yes - not - cancel", m="Last chance...": mb. askyesnocancel(t, m)).pack(fill="x", expand=True) f2.pack(side="top", fill="x") top.mainloop()
def build_notebook(self, top): mono_font = self.get_mono_font() nb = tix.NoteBook(top) nb.add("item_page", label="items", raisecmd=lambda pg="item": self.ev_page(pg)) fr = tix.Frame(nb.subwidget("item_page")) self.item_fmt = "{:15} {:15} {:10} ${:<8} {:12}" tix.Label(fr, font=mono_font, text=self.item_fmt.format("Name", "Description", "Owner", "Price", "Condition")).pack(anchor="w") # 使用tix.ScrolledListBox而不是tix.ScrolledText小部件。使用ScrolledListBox小部件可以更加容易地选择行。 slb = tix.ScrolledListBox(fr, width=500, height=200) slb.pack(fill="both", expand=True) fr.pack(fill="both", expand=True) self.item_list = slb.subwidget("listbox") self.item_list.configure(font=mono_font, bg="white") # 使用bind()方法将鼠标左键双击链接到适当的编辑事件处理程序上。除了处理默认小部件的命令,bind()机制可以处理任意事件。 # 不同的是,回调函数必须接受一个事件参数并为参数设置了默认值None。这样普通的回调机制以及双击链接也可以使用它 self.item_list.bind("<Double-1>", self.ev_edit_item) # 事件处理程序都是自解释型的。在选中新的notebook页时,就会触发ev_page()处理程序。它只是为活动页面启动对应的菜单。 nb.add("member_page", label="members", raisecmd=lambda pg="member": self.ev_page(pg)) fr = tix.Frame(nb.subwidget("member_page")) self.member_fmt = "{:<15} {:<40}" tix.Label(fr, font=mono_font, text=self.member_fmt.format( "Name", "Email Address")).pack(anchor="w") slb = tix.ScrolledListBox(fr, width=40, height=20) slb.pack(fill="both", expand=True) fr.pack(fill="both", expand=True) self.member_list = slb.subwidget("listbox") self.member_list.configure(font=mono_font, bg="white") self.member_list.bind("<Double-1>", self.ev_edit_member) return nb
def buildNoteBook(self, top): mono_font = self.getMonoFont() nb = tix.NoteBook(top) nb.add("itemPage", label="Items", raisecmd=lambda pg="item": self.evPage(pg)) fr = tix.Frame(nb.subwidget("itemPage")) self.itemFmt = "{:15} {:15} {:10} ${:<8} {:12}" tix.Label(fr, font=mono_font, text=self.itemFmt.format("Name", "Description", "Owner", "Price", "Condition")).pack(anchor='w') slb = tix.ScrolledListBox(fr, width=500, height=200) slb.pack(fill='both', expand=True) fr.pack(fill='both', expand=True) self.itemList = slb.subwidget("listbox") self.itemList.configure(font=mono_font, bg='white') self.itemList.bind('<Double-1>', self.evEditItem) nb.add("memberPage", label="Members", raisecmd=lambda pg="member": self.evPage(pg)) fr = tix.Frame(nb.subwidget("memberPage")) self.memberFmt = "{:<15} {:<40}" tix.Label(fr, font=mono_font, text=self.memberFmt.format("Name", "Email Address")).pack(anchor='w') slb = tix.ScrolledListBox(fr, width=40, height=20) slb.pack(fill='both', expand=True) fr.pack(fill='both', expand=True) self.memberList = slb.subwidget("listbox") self.memberList.configure(font=mono_font, bg='white') self.memberList.bind('<Double-1>', self.evEditMember) return nb
def __init__( self, root, *args, **kwargs, ): # menu self.menu = Menu(root) self.filemenu = Menu(self.menu, tearoff=0) self.showmenu = Menu(self.menu, tearoff=0) self.settingmenu = Menu(self.menu, tearoff=0) self.helpmenu = Menu(self.menu, tearoff=0) self.menu.add_cascade(label="File", menu=self.filemenu) self.menu.add_cascade(label="Display", menu=self.showmenu) self.menu.add_cascade(label="Options", menu=self.settingmenu) self.menu.add_cascade(label="Help", menu=self.helpmenu) self.filemenu.add_command(label="Login") self.filemenu.add_command(label="New") self.filemenu.add_command(label="Open") self.filemenu.add_command(label="Import") self.filemenu.add_command(label="Export") self.filemenu.add_separator() self.filemenu.add_command(label="Quit") self.showmenu.add_command(label="Full screen") self.showmenu.add_command(label="Edit") self.showmenu.add_command(label="Tools") self.showmenu.add_command(label="Navigation") self.settingmenu.add_command(label="Toolbars") self.settingmenu.add_separator() self.settingmenu.add_command(label="Server") self.helpmenu.add_command(label="Find Action") self.helpmenu.add_separator() self.helpmenu.add_command(label="About", command=self.about) root.config(menu=self.menu) #NOTEBOOK self.note = tix.NoteBook(root) self.note.add("page1", label="Main") self.note.add("page2", label="Výpis") self.note.add("page3", label="Pridať") self.p1 = self.note.subwidget_list["page1"] self.p2 = self.note.subwidget_list["page2"] self.p3 = self.note.subwidget_list["page3"] self.note.pack(expand=1, fill=BOTH) self.bigFrame = Frame(self.p1, bg="Black") self.bigFrame.pack(fill=BOTH, expand=1, side=TOP) #doubleFrame2 self.doubleFrame2 = Frame(self.bigFrame) self.doubleFrame2.pack(padx=5, pady=5, fill=BOTH, expand=1, side=TOP) #page1 self.profileF = LabelFrame(self.doubleFrame2, text="Profil") self.profileF.pack(padx=5, pady=5, fill=BOTH, expand=True, side=TOP) #Image self.image = Frame(self.profileF, bg="Gray", width=120, height=140).grid(row=0, column=0, columnspan=1, rowspan=3, padx=15, pady=(20, 10)) #ProfilePopis self.name = Label(self.profileF, text="Meno:", fg="red").grid(row=0, column=2, padx=8, pady=6, sticky=E) self.name = Label(self.profileF, text="Email:", fg="red").grid(row=1, column=2, padx=8, pady=6, sticky=E) self.name = Label(self.profileF, text="Dátum Narodenia:", fg="red").grid(row=2, column=2, padx=7, pady=6, sticky=E) self.name = Label(self.profileF, text="Pozícia:", fg="red").grid(row=3, column=2, padx=7, pady=6, sticky=E) self.name = Label(self.profileF, text="Jožko", font=('Comic Sans MS', 11)).grid(row=0, column=3, padx=8, pady=6, sticky=W) self.name = Label(self.profileF, text="*****@*****.**", font=('Comic Sans MS', 11)).grid(row=1, column=3, padx=8, pady=6, sticky=W) self.name = Label(self.profileF, text="12.apríla.1995", font=('Comic Sans MS', 11)).grid(row=2, column=3, padx=8, pady=6, sticky=W) self.name = Label(self.profileF, text="Redaktor", font=('Comic Sans MS', 11)).grid(row=3, column=3, padx=8, pady=6, sticky=W) self.name = Label(self.profileF, text="Priezvisko:", fg="red").grid(row=0, column=4, padx=8, pady=6, sticky=E) self.name = Label(self.profileF, text="Stav:", fg="red").grid(row=1, column=4, padx=8, pady=6, sticky=E) self.name = Label(self.profileF, text="Vedúci", fg="red").grid(row=2, column=4, padx=7, pady=6, sticky=E) self.name = Label(self.profileF, text="Počet článkov:", fg="red").grid(row=3, column=4, padx=7, pady=6, sticky=E) self.name = Label(self.profileF, text="Mrkvička", font=('Comic Sans MS', 11)).grid(row=0, column=5, padx=8, pady=6, sticky=W) self.name = Label(self.profileF, text="Online", fg="green", font=('Comic Sans MS', 11)).grid(row=1, column=5, padx=8, pady=6, sticky=W) self.name = Label(self.profileF, text="Milan Tichý", font=('Comic Sans MS', 11)).grid(row=2, column=5, padx=8, pady=6, sticky=W) self.name = Label(self.profileF, text="122", font=('Comic Sans MS', 11)).grid(row=3, column=5, padx=8, pady=6, sticky=W) self.infoF = LabelFrame(self.doubleFrame2, text="Info") self.infoF.pack(padx=5, pady=5, fill=BOTH, side=BOTTOM, expand=1) #info self.onlineF = LabelFrame(self.infoF, text="Online Admini") self.onlineF.pack(padx=5, pady=5, fill=BOTH, expand=1, side=LEFT) #resolution self.mlb1 = table.MultiListbox(self.onlineF, ( ('Nick', 10), ('Mail', 20), )) for i in range(len(resolution)): self.mlb1.insert(END, (resolution[i][0], resolution[i][1])) self.mlb1.pack(expand=YES, fill=BOTH, padx=10, pady=10) self.prehladF = LabelFrame(self.infoF, text="Celkový Prehlad") self.prehladF.pack(padx=5, pady=5, fill=BOTH, expand=1, side=RIGHT) self.visitedTimes = Label(self.prehladF, text="Návštevy tento mesiac: ", fg="gray22").grid(row=0, column=0, sticky=E, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="Návštevy celkovo: ", fg="gray22").grid(row=1, column=0, sticky=E, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="Počet článkov celkovo: ", fg="gray22").grid(row=2, column=0, sticky=E, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="Počet likov celkovo: ", fg="gray22").grid(row=3, column=0, sticky=E, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="Počet dislike celkovo: ", fg="gray22").grid(row=4, column=0, sticky=E, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="2358", font=('Comic Sans MS', 10)).grid(row=0, column=1, sticky=W, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="25 890", font=('Comic Sans MS', 10)).grid(row=1, column=1, sticky=W, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="149", font=('Comic Sans MS', 10)).grid(row=2, column=1, sticky=W, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="2222", font=('Comic Sans MS', 10)).grid(row=3, column=1, sticky=W, padx=8, pady=6) self.visitedTimes = Label(self.prehladF, text="411", font=('Comic Sans MS', 10)).grid(row=4, column=1, sticky=W, padx=8, pady=6) #------------------------------------------------------------- # page2 self.bigFrame = Frame(self.p2, bg="Black") self.bigFrame.pack(fill=BOTH, expand=1, side=TOP) self.filterF = LabelFrame(self.bigFrame, text="Výpis článkov / Filter") self.filterF.pack(padx=5, pady=5, fill=BOTH, expand=True, side=TOP) self.row1 = Frame(self.filterF) self.row1.pack(side=TOP, anchor=E) self.podrobnosti = Button(self.row1, text="Zobraz Podrobnosti", font=('Comic Sans MS', 10), command=self.showProperties) self.podrobnosti.pack(side=RIGHT, padx=10) self.podrobnosti = Button(self.row1, text="Zmeniť stav", font=('Comic Sans MS', 10), command=self.changeState) self.podrobnosti.pack(side=RIGHT, padx=10) self.mlb1 = table.MultiListbox(self.filterF, (('Titulok', 40), ('Autor', 20), ('Dátum', 20), ('Stav', 10))) for i in range(len(resolution)): self.mlb1.insert(END, (articles[i][0], articles[i][1], articles[i][2], articles[i][3])) self.mlb1.pack(expand=YES, fill=BOTH, padx=10, pady=10) self.filter = Frame(self.filterF) self.filter.pack(fill=BOTH, side=BOTTOM, padx=10, pady=15) self.search = Entry(self.filter, width=30) self.search.pack(side=LEFT) self.autor = Button(self.filter, text="Autor", width=(12), command=self.autor) self.autor.pack(side=LEFT, padx=(12, 0)) self.autor = Button(self.filter, text="Dátum", width=12, command=self.date) self.autor.pack(side=LEFT, padx=(12, 0)) self.autor = Button(self.filter, text="Stav", width=12, fg="green", command=self.state) self.autor.pack(side=LEFT, padx=(12, 0)) self.autor = Button(self.filter, text="Vyhľadat", width=12, fg="red", command=self.searchInputh) self.autor.pack(side=LEFT, padx=(12, 0)) #page3 self.bigFrame = Frame(self.p3, bg="Black") self.bigFrame.pack(fill=BOTH, expand=1, side=TOP) self.addF = LabelFrame(self.bigFrame, text="Pridaj článok") self.addF.pack(padx=5, pady=5, fill=BOTH, expand=True, side=TOP) self.row1 = Frame(self.addF) self.row1.pack(side=TOP, fill=X) self.title = Label(self.row1, text="Titulok: ") self.title.pack(side=LEFT, anchor=W) self.titleInput = Entry(self.row1) self.titleInput.pack(side=LEFT, expand=1, fill=BOTH, padx=15) self.row2 = Frame(self.addF) self.row2.pack(side=TOP, fill=X, pady=10) self.categorie = Label(self.row2, text="Kategórie: Nevybrané ") self.categorie.pack(anchor=W, side=LEFT, padx=10) self.categorie = Button(self.row2, text="Vyber Kategórie", command=self.category) self.categorie.pack(anchor=W, side=LEFT, padx=10) self.imgImport = Button(self.row2, text="Import Image", command=self.importImage) self.imgImport.pack(anchor=W, side=RIGHT, padx=10) self.categorie = Label(self.row2, text="/img/novýObrázok1 ") self.categorie.pack(anchor=W, side=RIGHT, padx=10) self.row3 = Frame(self.addF) self.row3.pack(side=TOP, fill=X, pady=10) self.textHeader = Label(self.row3, text="Text článku:") self.textHeader.pack(anchor=W, side=LEFT) self.textHeader = Button(self.row3, text="Moore", command=self.styleFonte) self.textHeader.pack(anchor=W, side=RIGHT, padx=(0, 5), pady=5) self.textHeader = Button(self.row3, text="Font", command=self.styleFonte) self.textHeader.pack(anchor=W, side=RIGHT, padx=(0, 5), pady=5) self.textHeader = Button(self.row3, text="U", command=self.styleFonte) self.textHeader.pack(anchor=W, side=RIGHT, padx=(0, 5), pady=5) self.textHeader = Button(self.row3, text="I", command=self.styleFonte) self.textHeader.pack(anchor=W, side=RIGHT, padx=(0, 5), pady=5) self.textHeader = Button(self.row3, text="B", command=self.styleFonte) self.textHeader.pack(anchor=W, side=RIGHT, padx=(0, 5), pady=5) self.text = Text(self.addF, height=10) self.text.pack(side=TOP, fill=X, padx=8, pady=8) self.row4 = Frame(self.addF) self.row4.pack(side=TOP, fill=X, pady=10) self.extraOptions = LabelFrame(self.row4, text="Extra Options") self.extraOptions.pack(padx=5, pady=5, fill=BOTH, expand=True, side=LEFT) self.var1 = IntVar() self.lab1 = Label(self.extraOptions, text="Ukáž autorov") self.c1 = Checkbutton(self.extraOptions, variable=self.var1) self.c1.pack(padx=5, pady=5, side=LEFT) self.lab1.pack(padx=5, pady=5, side=LEFT) self.var2 = IntVar() self.lab2 = Label(self.extraOptions, text="Povoľ Komentáre") self.c2 = Checkbutton(self.extraOptions, variable=self.var2) self.c2.pack(padx=5, pady=5, side=LEFT) self.lab2.pack(padx=5, pady=5, side=LEFT) self.extraOptions = Frame(self.row4) self.extraOptions.pack(padx=5, pady=5, fill=BOTH, expand=True, side=RIGHT) self.row1 = Frame(self.extraOptions) self.row1.pack(side=TOP) self.dateLabel = Label(self.row1, text="Publikovať: ") self.dateLabel.pack(side=LEFT) v = StringVar(root, value='dd/yy/mm ss/mm/hh') self.dd = Entry(self.row1, textvariable=v) self.dd.pack(side=LEFT, padx=15) self.row2 = Frame(self.extraOptions) self.row2.pack(side=TOP, anchor=SE) self.nahlad = Button(self.row2, text="Náhľad", command=self.nahlad) self.nahlad.pack(anchor=E, side=RIGHT, padx=(0, 15), pady=10) self.publikovat = Button(self.row2, text="Publikovať", command=self.public) self.publikovat.pack(anchor=E, side=RIGHT, padx=(0, 15), pady=10)
def __init__(self, path="", **options): self.glos = Glossary(ui=self) self.pref = {} self.pref_load(**options) ############################################# rootWin = self.rootWin = tix.Tk() tix.Frame.__init__(self, rootWin) rootWin.title("PyGlossary (Tkinter)") rootWin.resizable(True, False) ######## set_window_icon(rootWin) ######## self.pack(fill="x") # rootWin.bind("<Configure>", self.resized) ###################### self.glos = Glossary(ui=self) self.pref = {} self.pref_load() self.pathI = "" self.pathO = "" self.fcd_dir = join(homeDir, "Desktop") ###################### vpaned = tk.PanedWindow(self, orient=tk.VERTICAL) notebook = tix.NoteBook(vpaned) notebook.add("tab1", label="Convert", underline=0) notebook.add("tab2", label="Reverse", underline=0) convertFrame = tix.Frame(notebook.tab1) ###################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text="Read from format") label.pack(side="left") ## comboVar = tk.StringVar() combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc) # comboVar.set(Glossary.readDesc[0]) comboVar.set(noneItem) combo.pack(side="left") self.combobox_i = comboVar ## frame.pack(fill="x") ################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text=" Path:") label.pack(side="left") ## entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) entry.bind_all("<KeyPress>", self.entry_changed) self.entry_i = entry ## button = tix.Button( frame, text="Browse", command=self.browse_i, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## frame.pack(fill="x") ###################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text="Write to format ") label.pack(side="left") ## comboVar = tk.StringVar() combo = tk.OptionMenu(frame, comboVar, *Glossary.writeDesc) # comboVar.set(Glossary.writeDesc[0]) comboVar.set(noneItem) combo.pack(side="left") combo.bind("<Configure>", self.combobox_o_changed) self.combobox_o = comboVar ## frame.pack(fill="x") ################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text=" Path:") label.pack(side="left") ## entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) # entry.bind_all("<KeyPress>", self.entry_changed) self.entry_o = entry ## button = tix.Button( frame, text="Browse", command=self.browse_o, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## frame.pack(fill="x") ####### frame = tix.Frame(convertFrame) label = tix.Label(frame, text=" " * 15) label.pack( side="left", fill="x", expand=True, ) button = tix.Button( frame, text="Convert", command=self.convert, # bg="#00e000", # activebackground="#22f022", ) button.pack( side="left", fill="x", expand=True, ) ### frame.pack(fill="x") ###### convertFrame.pack(fill="x") vpaned.add(notebook) ################# console = tix.Text(vpaned, height=15, background="#000000") # self.consoleH = 15 # sbar = Tix.Scrollbar( # vpaned, # orien=Tix.VERTICAL, # command=console.yview # ) # sbar.grid ( row=0, column=1) # console["yscrollcommand"] = sbar.set # console.grid() console.pack(fill="both", expand=True) log.addHandler(TkTextLogHandler(console), ) console.insert("end", "Console:\n") #### vpaned.add(console) vpaned.pack(fill="both", expand=True) self.console = console ################## frame2 = tix.Frame(self) clearB = tix.Button( frame2, text="Clear", command=self.console_clear, # bg="black", # fg="#ffff00", # activebackground="#333333", # activeforeground="#ffff00", ) clearB.pack(side="left") #### label = tix.Label(frame2, text="Verbosity") label.pack(side="left") ## comboVar = tk.StringVar() combo = tk.OptionMenu( frame2, comboVar, 0, 1, 2, 3, 4, ) comboVar.set(log.getVerbosity()) comboVar.trace("w", self.verbosityChanged) combo.pack(side="left") self.verbosityCombo = comboVar ##### pbar = ProgressBar(frame2, width=400) pbar.pack(side="left", fill="x", expand=True) self.pbar = pbar frame2.pack(fill="x") self.progressTitle = "" ############# # vpaned.grid() # bottomFrame.grid() # self.grid() ##################### # lbox = Tix.Listbox(convertFrame) # lbox.insert(0, "aaaaaaaa", "bbbbbbbbbbbbbbbbbbbb") # lbox.pack(fill="x") ############## frame3 = tix.Frame(self) aboutB = tix.Button( frame3, text="About", command=self.about_clicked, # bg="#e000e0", # activebackground="#f030f0", ) aboutB.pack(side="right") closeB = tix.Button( frame3, text="Close", command=self.quit, # bg="#ff0000", # activebackground="#ff5050", ) closeB.pack(side="right") frame3.pack(fill="x") # __________________________ Reverse Tab __________________________ # revFrame = tix.Frame(notebook.tab2) revFrame.pack(fill="x") ###################### frame = tix.Frame(revFrame) ## label = tix.Label(frame, text="Read from format") label.pack(side="left") ## comboVar = tk.StringVar() combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc) # comboVar.set(Glossary.readDesc[0]) comboVar.set(noneItem) combo.pack(side="left") self.combobox_r_i = comboVar ## frame.pack(fill="x") ################### frame = tix.Frame(revFrame) ## label = tix.Label(frame, text=" Path:") label.pack(side="left") ## entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) # entry.bind_all("<KeyPress>", self.entry_r_i_changed) self.entry_r_i = entry ## button = tix.Button( frame, text="Browse", command=self.r_browse_i, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## button = tix.Button( frame, text="Load", command=self.r_load, # bg="#7777ff", ) button.pack(side="left") ### frame.pack(fill="x") ################### frame = tix.Frame(revFrame) ## label = tix.Label(frame, text="Output Tabfile") label.pack(side="left") ### entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) # entry.bind_all("<KeyPress>", self.entry_r_i_changed) self.entry_r_o = entry ## button = tix.Button( frame, text="Browse", command=self.r_browse_o, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## frame.pack(fill="x") ############################## if path: self.entry_i.insert(0, path) self.entry_changed() self.load()
def createWidgets(self): ## Tix tix for python 3 if (pythVers < 3): self.nb = Tix.NoteBook(self) else: self.nb = tix.NoteBook(self) self.nb.add('appr', label='APPR', raisecmd=lambda self=self: self.update_page()) self.nb.add('cruz', label='CRSE', raisecmd=lambda self=self: self.update_page()) self.nb.add('wing', label='WING', raisecmd=lambda self=self: self.update_page()) self.nb.add('hstb', label='HSTB', raisecmd=lambda self=self: self.update_page()) self.nb.add('vstb', label='VSTB', raisecmd=lambda self=self: self.update_page()) self.nb.add('ball', label='BALL', raisecmd=lambda self=self: self.update_page()) self.nb.add('prop', label='PROP', raisecmd=lambda self=self: self.update_page()) # page = PropertyPage(self.nb.appr) self.pages['appr'] = page page.addField(Va, 'ApprSpd:') page.addField(Aa, 'ApprAoA:') page.addField(Ka, 'ApprFuel:') page.addField(Ra, 'ApprThrt:') page.addField(Fa, 'ApprFlap:') page.addField(Vy, 'SolveAtSpd:') page.addField(Hy, 'SolveAtAlt:') # page = PropertyPage(self.nb.cruz) self.pages['cruz'] = page page.addField(Vc, 'CruiseSpd:') page.addField(Hc, 'CruiseAlt:') page.addField(Kc, 'CruiseFuel:') page.addField(Rc, 'CruiseThrt:') # page = PropertyPage(self.nb.wing) self.pages['wing'] = page page.addField(Cw, 'WingCambr:') page.addField(Iw, 'WingIDrag:') page.addField(Aw, 'WingStAoA:') page.addField(Ww, 'WingStWid:') page.addField(Pw, 'WingStlPk:') page.addField(Lf, 'WFlapLift:') page.addField(Df, 'WFlapDrag:') page.addField(Lr, 'AilrnLift:') page.addField(Dr, 'AilrnDrag:') # page = PropertyPage(self.nb.hstb) self.pages['hstb'] = page page.addField(Ch, 'HstbCambr:') page.addField(Ih, 'HstbIDrag:') page.addField(Ah, 'HstbStAoA:') page.addField(Wh, 'HstbStWid:') page.addField(Ph, 'HstbStlPk:') page.addField(Lh, 'HFlapLift:') page.addField(Dh, 'HFlapDrag:') # page = PropertyPage(self.nb.vstb) self.pages['vstb'] = page page.addField(Cv, 'VstbCambr:') page.addField(Iv, 'VstbIDrag:') page.addField(Av, 'VstbStAoA:') page.addField(Wv, 'VstbStWid:') page.addField(Pv, 'VstbStlPk:') page.addField(Lv, 'VFlapLift:') page.addField(Dv, 'VFlapDrag:') # page = PropertyPage(self.nb.ball) self.pages['ball'] = page page.addField(Mb, 'BallMass :') page.addField(Xb, 'BallXloc :') page.addField(Yb, 'BallYloc :') page.addField(Zb, 'BallZloc :') # page = PropertyPage(self.nb.prop) self.pages['prop'] = page page.addField(Mp, 'PropMass :') page.addField(Rp, 'PropRadi :') page.addField(Ap, 'PropMomt :') page.addField(Np, 'PropMinR :') page.addField(Xp, 'PropMaxR :') page.addField(Ip, 'PropFine :') page.addField(Op, 'PropCoar :') page.addField(Vp, 'PropCSpd :') page.addField(Cp, 'PropCRpm :') page.addField(Tp, 'PropTRpm :') # ## Tix tix for python 3 if (pythVers < 3): self.nb.pack(expand=1, fill=Tix.BOTH, padx=5, pady=5, side=Tix.TOP) else: self.nb.pack(expand=1, fill=tix.BOTH, padx=5, pady=5, side=tix.TOP) ## Tix tix for python 3 if (pythVers < 3): self.QUIT = Tix.Button(self) else: self.QUIT = tix.Button(self) self.QUIT['text'] = 'Quit' self.QUIT['command'] = self.quitCmd self.QUIT.pack({"side": "right"}) ## Tix tix for python 3 if (pythVers < 3): self.PLOT = Tix.Button(self) else: self.PLOT = tix.Button(self) self.PLOT['text'] = 'Plot' self.PLOT['command'] = self.plotCmd self.PLOT.pack({"side": "left"})
def __init__(self): rootWin = self.rootWin = tix.Tk() # a hack that hides the window until we move it to the center of screen if os.sep == "\\": # Windows rootWin.attributes('-alpha', 0.0) else: # Linux rootWin.withdraw() tix.Frame.__init__(self, rootWin) UIBase.__init__(self) rootWin.title("PyGlossary (Tkinter)") rootWin.resizable(True, False) ######## set_window_icon(rootWin) rootWin.bind('<Escape>', lambda e: rootWin.quit()) ######### # Linux: ('clam', 'alt', 'default', 'classic') # Windows: ('winnative', 'clam', 'alt', 'default', 'classic', 'vista', 'xpnative') # style = ttk.Style() # style.theme_use("default") ######## self.pack(fill="x") # rootWin.bind("<Configure>", self.resized) ####################### defaultFont = tkFont.nametofont('TkDefaultFont') if core.sysName in ("linux", "freebsd"): defaultFont.configure(size=int(defaultFont.cget("size") * 1.4)) #### self.biggerFont = defaultFont.copy() self.biggerFont.configure(size=int(defaultFont.cget("size") * 1.8)) ###################### self.glos = Glossary(ui=self) self.glos.config = self.config self._convertOptions = {} self.pathI = "" self.pathO = "" fcd_dir = join(homeDir, "Desktop") if isfile(self.fcd_dir_save_path): try: with open(self.fcd_dir_save_path, encoding="utf-8") as fp: fcd_dir = fp.read().strip("\n") except Exception: log.exception("") self.fcd_dir = fcd_dir ###################### notebook = tix.NoteBook(self) notebook.add("tabConvert", label="Convert", underline=0) # notebook.add("tabReverse", label="Reverse", underline=0) notebook.add("tabAbout", label="About", underline=0) convertFrame = tix.Frame(notebook.tabConvert) aboutFrame = tix.Frame(notebook.tabAbout) ################### row = 0 label = ttk.Label(convertFrame, text="Input File: ") label.grid( row=row, column=0, sticky=tk.W, padx=5, ) ## entry = tix.Entry(convertFrame) entry.grid( row=row, column=1, columnspan=2, sticky=tk.W + tk.E, padx=0, ) entry.bind_all("<KeyPress>", self.anyEntryChanged) self.entryInputConvert = entry ## button = newButton( convertFrame, text="Browse", command=self.browseInputConvert, # bg="#f0f000", # activebackground="#f6f622", borderwidth=3, ) button.grid( row=row, column=3, sticky=tk.W + tk.E, padx=5, ) ###################### row += 1 label = ttk.Label(convertFrame, text="Input Format: ") label.grid( row=row, column=0, sticky=tk.W, padx=5, ) ## self.formatButtonInputConvert = FormatButton( master=convertFrame, descList=readDesc, dialogTitle="Select Input Format", onChange=self.inputFormatChanged, ) self.formatButtonInputConvert.grid( row=row, column=1, columnspan=2, sticky=tk.W, padx=0, ) ## self.readOptions = {} # type: Dict[str, Any] self.writeOptions = {} # type: Dict[str, Any] ## self.readOptionsButton = FormatOptionsButton( "Read", self.readOptions, self.formatButtonInputConvert, master=convertFrame, ) self.inputFormatRow = row ###################### row += 1 label = ttk.Label(convertFrame) label.grid( row=row, column=0, sticky=tk.W, ) ################### row += 1 label = ttk.Label(convertFrame, text="Output File: ") label.grid( row=row, column=0, sticky=tk.W, padx=5, ) ## entry = tix.Entry(convertFrame) entry.grid( row=row, column=1, columnspan=2, sticky=tk.W + tk.E, padx=0, ) entry.bind_all("<KeyPress>", self.anyEntryChanged) self.entryOutputConvert = entry ## button = newButton( convertFrame, text="Browse", command=self.browseOutputConvert, # bg="#f0f000", # activebackground="#f6f622", borderwidth=3, ) button.grid( row=row, column=3, sticky=tk.W + tk.E, padx=5, ) ###################### row += 1 label = ttk.Label(convertFrame, text="Output Format: ") label.grid( row=row, column=0, sticky=tk.W, padx=5, ) ## self.formatButtonOutputConvert = FormatButton( master=convertFrame, descList=writeDesc, dialogTitle="Select Output Format", onChange=self.outputFormatChanged, ) self.formatButtonOutputConvert.grid( row=row, column=1, columnspan=2, sticky=tk.W, padx=0, ) ## self.writeOptionsButton = FormatOptionsButton( "Write", self.writeOptions, self.formatButtonOutputConvert, master=convertFrame, ) self.outputFormatRow = row ################### row += 1 button = newButton( convertFrame, text="Convert", command=self.convert, # background="#00e000", # activebackground="#22f022", borderwidth=7, font=self.biggerFont, padx=5, pady=5, ) button.grid( row=row, column=2, columnspan=3, sticky=tk.W + tk.E + tk.S, padx=5, pady=5, ) # print(f"row number for Convert button: {row}") ###### convertFrame.pack(fill="x") # convertFrame.grid(sticky=tk.W + tk.E + tk.N + tk.S) ################# row += 1 console = tix.Text( convertFrame, height=15, background="#000", foreground="#fff", ) console.bind("<Key>", self.consoleKeyPress) # self.consoleH = 15 # sbar = Tix.Scrollbar( # convertFrame, # orien=Tix.VERTICAL, # command=console.yview # ) # sbar.grid (row=row, column=1) # console["yscrollcommand"] = sbar.set console.grid( row=row, column=0, columnspan=4, sticky=tk.W + tk.E, padx=5, pady=0, ) log.addHandler(TkTextLogHandler(console), ) console.insert("end", "Console:\n") #### self.console = console ################## aboutFrame2 = tix.Frame(aboutFrame) ## label = newLabelWithImage(aboutFrame2, file=logo) label.pack(side="left") ## ## label = ttk.Label(aboutFrame2, text=f"PyGlossary\nVersion {core.VERSION}") label.pack(side="left") ## aboutFrame2.pack(side="top", fill="x") ## style = ttk.Style(self) style.configure("TNotebook", tabposition="wn") # ws => to the left (west) and to the bottom (south) # wn => to the left (west) and at top aboutNotebook = ttk.Notebook(aboutFrame, style="TNotebook") aboutFrame3 = tk.Frame(aboutNotebook) authorsFrame = tk.Frame(aboutNotebook) licenseFrame = tk.Frame(aboutNotebook) # tabImg = tk.PhotoImage(file=join(resDir, "dialog-information-22.png")) # tabImg = tk.PhotoImage(file=join(resDir, "author-22.png")) aboutNotebook.add( aboutFrame3, text="\n About \n", # image=tabImg, # not working # compound=tk.TOP, # padding=50, # not working ) aboutNotebook.add( authorsFrame, text="\nAuthors\n", ) aboutNotebook.add( licenseFrame, text="\nLicense\n", ) label = newReadOnlyText( aboutFrame3, text=f"{aboutText}\nHome page: {core.homePage}", font=("DejaVu Sans", 11, ""), ) label.pack(fill="x") authorsText = "\n".join(authors) authorsText = authorsText.replace("\t", " ") label = newReadOnlyText( authorsFrame, text=authorsText, font=("DejaVu Sans", 11, ""), ) label.pack(fill="x") label = newReadOnlyText( licenseFrame, text=licenseText, font=("DejaVu Sans", 11, ""), ) label.pack(fill="x") aboutNotebook.pack(fill="x") aboutFrame.pack(fill="x") ###################### tk.Grid.columnconfigure(convertFrame, 0, weight=1) tk.Grid.columnconfigure(convertFrame, 1, weight=30) tk.Grid.columnconfigure(convertFrame, 2, weight=20) tk.Grid.columnconfigure(convertFrame, 3, weight=1) tk.Grid.rowconfigure(convertFrame, 0, weight=50) tk.Grid.rowconfigure(convertFrame, 1, weight=50) tk.Grid.rowconfigure(convertFrame, 2, weight=1) tk.Grid.rowconfigure(convertFrame, 3, weight=50) tk.Grid.rowconfigure(convertFrame, 4, weight=50) tk.Grid.rowconfigure(convertFrame, 5, weight=1) tk.Grid.rowconfigure(convertFrame, 6, weight=50) # _________________________________________________________________ # notebook.pack(fill="both", expand=True) # _________________________________________________________________ # statusBarframe = tk.Frame(self, borderwidth=3) clearB = newButton( statusBarframe, text="Clear", command=self.console_clear, # bg="black", # fg="#ffff00", # activebackground="#333333", # activeforeground="#ffff00", borderwidth=3, height=2, ) clearB.pack(side="left") #### label = ttk.Label(statusBarframe, text="Verbosity") label.pack(side="left") ## comboVar = tk.StringVar() combo = ttk.OptionMenu( statusBarframe, comboVar, log.getVerbosity(), # default 0, 1, 2, 3, 4, 5, ) comboVar.trace("w", self.verbosityChanged) combo.pack(side="left") self.verbosityCombo = comboVar ##### pbar = ProgressBar(statusBarframe, width=700, height=28) pbar.pack(side="left", fill="x", expand=True) self.pbar = pbar statusBarframe.pack(fill="x") self.progressTitle = "" # _________________________________________________________________ # centerWindow(rootWin) # show the window if os.sep == "\\": # Windows rootWin.attributes('-alpha', 1.0) else: # Linux rootWin.deiconify()
import tkinter.tix as tix import tkinter.messagebox as mb top = tix.Tk() nb = tix.NoteBook(top, width=300, height=200) nb.pack(expand=True, fill='both') nb.add('page1', label="Text") f1 = tix.Frame(nb.subwidget('page1')) st = tix.ScrolledText(f1) st.subwidget('text').insert("1.0", "Here is where the text goes...") st.pack(expand=True) nb.add('page2', label="Message Boxes") f2 = tix.Frame(nb.subwidget('page2')) tix.Button( f2, text="error", bg="lightblue", command=lambda t="error", m="This is bad!": mb.showerror(t, m)).pack( fill='x', expand=True) tix.Button(f2, text="info", bg='pink', command=lambda t="info", m="Information": mb.showinfo(t, m)).pack( fill='x', expand=True) tix.Button( f2, text="warning", bg='yellow',
def __init__( self, root, *args, **kwargs, ): # menu self.menu = Menu(root) self.filemenu = Menu(self.menu, tearoff=0) self.showmenu = Menu(self.menu, tearoff=0) self.settingmenu = Menu(self.menu, tearoff=0) self.helpmenu = Menu(self.menu, tearoff=0) self.menu.add_cascade(label="File", menu=self.filemenu) self.menu.add_cascade(label="Display", menu=self.showmenu) self.menu.add_cascade(label="Options", menu=self.settingmenu) self.menu.add_cascade(label="Help", menu=self.helpmenu) self.filemenu.add_command(label="New") self.filemenu.add_command(label="Open") self.filemenu.add_command(label="Import") self.filemenu.add_command(label="Export") self.filemenu.add_separator() self.filemenu.add_command(label="Quit") self.showmenu.add_command(label="Full screen") self.showmenu.add_command(label="Edit") self.showmenu.add_command(label="Tools") self.showmenu.add_command(label="Navigation") self.settingmenu.add_command(label="Toolbars") self.settingmenu.add_separator() self.settingmenu.add_command(label="Server") self.helpmenu.add_command(label="Find Action") self.helpmenu.add_separator() self.helpmenu.add_command(label="About") root.config(menu=self.menu) #NOTEBOOK self.note = tix.NoteBook(root) self.note.add("page1", label="Options") self.note.add("page2", label="Friends") self.note.add("page3", label="Game") self.p1 = self.note.subwidget_list["page1"] self.p2 = self.note.subwidget_list["page2"] self.p3 = self.note.subwidget_list["page3"] self.note.pack(expand=1, fill=BOTH) self.bigFrame = Frame(self.p1) self.bigFrame.pack(fill=BOTH, expand=1, side=TOP) #doubleFrame2 self.doubleFrame2 = Frame(self.bigFrame) self.doubleFrame2.pack(padx=5, pady=5, fill=BOTH, expand=1, side=TOP) #page1 self.screenF = LabelFrame(self.doubleFrame2, text="Screen") self.screenF.pack(padx=5, pady=5, fill=BOTH, expand=1, side=LEFT) self.resF = LabelFrame(self.doubleFrame2, text="Resolution") self.resF.pack(padx=5, pady=5, fill=BOTH, side=RIGHT, expand=1) #resolution self.mlb1 = table.MultiListbox(self.resF, (('Resolution', 20), ('Type', 20))) for i in range(len(resolution)): self.mlb1.insert(END, (resolution[i][0], resolution[i][1])) self.mlb1.pack(expand=YES, fill=BOTH, padx=10, pady=10) self.mlb1.subscribe(lambda row: self.edit(row)) #screen self.AA = StringVar() self.AntiA = Label(self.screenF, text='Anti Aliasing :') self.AntiA.grid(row=0, column=0) self.x2 = Radiobutton(self.screenF, text="2X", variable=self.AA, value="2X") self.x2.grid(row=1, column=0) self.x4 = Radiobutton(self.screenF, text="4X", variable=self.AA, value="4X") self.x4.grid(row=1, column=1) self.x8 = Radiobutton(self.screenF, text="8X", variable=self.AA, value="8X") self.x8.grid(row=1, column=2) self.x16 = Radiobutton(self.screenF, text="16X", variable=self.AA, value="16X") self.x16.grid(row=1, column=3) self.tmp = IntVar() self.lab = Label(self.screenF, text="Volumetric Lightening") self.lab.grid(row=2, column=0) self.c = Checkbutton(self.screenF, variable=self.tmp) self.c.grid(row=2, column=2) self.tmp1 = IntVar() self.lab1 = Label(self.screenF, text="Dynamic Shadows") self.lab1.grid(row=3, column=0) self.c = Checkbutton(self.screenF, variable=self.tmp1) self.c.grid(row=3, column=2) self.lab2 = Label(self.screenF, text="Field of view") self.lab2.grid(row=4, column=0) self.w = Scale(self.screenF, from_=90, to=130, orient=HORIZONTAL) self.w.grid(row=4, column=2) #doubleframe self.doubleFrame = Frame(self.bigFrame) self.doubleFrame.pack(padx=5, pady=5, fill=BOTH, expand=1, side=BOTTOM) #movement self.frame4 = LabelFrame(self.doubleFrame, text="Movement") self.frame4.pack(padx=5, pady=5, fill=BOTH, expand=1, side=RIGHT) self.movef = Label(self.frame4, text='Move Forward :') self.movef.grid(row=0, column=0, padx=4, pady=4) self.movefE = Entry(self.frame4) self.movefE.grid(row=0, column=1, padx=4, pady=4) self.mover = Label(self.frame4, text='Move Right :') self.mover.grid(row=1, column=0, padx=4, pady=4) self.moverE = Entry(self.frame4) self.moverE.grid(row=1, column=1, padx=4, pady=4) self.movel = Label(self.frame4, text='Move Left :') self.movel.grid(row=2, column=0, padx=4, pady=4) self.movelE = Entry(self.frame4) self.movelE.grid(row=2, column=1, padx=4, pady=4) self.moveb = Label(self.frame4, text='Move Back :') self.moveb.grid(row=3, column=0, padx=4, pady=4) self.movebE = Entry(self.frame4) self.movebE.grid(row=3, column=1, padx=4, pady=4) self.jump = Label(self.frame4, text='Jump :') self.jump.grid(row=4, column=0, padx=4, pady=4) self.jumpE = Entry(self.frame4) self.jumpE.grid(row=4, column=1, padx=4, pady=4) self.crouch = Label(self.frame4, text='Crouch :') self.crouch.grid(row=4, column=0, padx=4, pady=4) self.crouchE = Entry(self.frame4) self.crouchE.grid(row=4, column=1, padx=4, pady=4) #abilities self.frame42 = LabelFrame(self.doubleFrame, text="Weapon Abilities") self.frame42.pack(padx=5, pady=5, fill=BOTH, expand=1, side=LEFT) self.tacAb = Label(self.frame42, text='Tactical Ability :') self.tacAb.grid(row=0, padx=4, pady=4) self.tacAbE = Entry(self.frame42) self.tacAbE.grid(row=0, column=1, padx=4, pady=4) self.ultAb = Label(self.frame42, text='Ultimate Ability :') self.ultAb.grid(row=1, column=0, padx=4, pady=4) self.ultAbE = Entry(self.frame42) self.ultAbE.grid(row=1, column=1, padx=4, pady=4) self.zoomb = Label(self.frame42, text='Zoom :') self.zoomb.grid(row=2, column=0, padx=4, pady=4) self.zoomE = Entry(self.frame42) self.zoomE.grid(row=2, column=1, padx=4, pady=4) self.shoot = Label(self.frame42, text='Shoot :') self.shoot.grid(row=3, column=0, padx=4, pady=4) self.shootE = Entry(self.frame42) self.shootE.grid(row=3, column=1, padx=4, pady=4) self.steady = Label(self.frame42, text='Steady :') self.steady.grid(row=4, column=0, padx=4, pady=4) self.steadyE = Entry(self.frame42) self.steadyE.grid(row=4, column=1, padx=4, pady=4) #save self.buttonFrame = Frame(self.p1) self.buttonFrame.pack(padx=5, pady=5, expand=1, fill=BOTH) self.buttonsframe = Frame(self.buttonFrame) self.buttonsframe.pack() self.cancelB = Button(self.buttonsframe, text="Koniec", command=self.exit) self.cancelB.grid(row=0, column=0) self.saveB = Button(self.buttonsframe, text="Ulozit", command=self.save) self.saveB.grid(row=0, column=2) #page2 self.row = IntVar() self.row = None self.name = StringVar() self.level = StringVar() self.mlb = table.MultiListbox(self.p2, (('Nick', 20), ('Level', 20))) for i in range(len(data)): self.mlb.insert(END, (data[i][0], data[i][1])) self.mlb.pack(expand=YES, fill=BOTH, padx=10, pady=10) self.mlb.subscribe(lambda row: self.edit(row)) self.nb = tix.NoteBook(self.p2) self.nb.add("page1", label="Pridať") self.nb.add("page2", label="Chat") self.p11 = self.nb.subwidget_list["page1"] self.p22 = self.nb.subwidget_list["page2"] self.nb.pack(fill="both", expand=1, padx=4, pady=4, ipadx=4, ipady=4) self.tab1 = Frame(self.p11) self.tab1.pack(fill="both", expand=1) self.nick = Label(self.tab1, text="Nick ") self.nick.grid(row=0) self.nicke = Entry(self.tab1) self.nicke.grid(row=0, column=1) #page2,2 self.send = Button(self.p22, text="Send") self.send.grid(row=0, column=0, sticky=W + E) input_text_area = Text(self.p22) input_text_area.grid(row=1, column=0, sticky=W + E) input_text_area.configure(background='#4D4D4D') #save self.newBu = Button(self.tab1, text="Novy zaznam", command=self.new) self.newBu.grid(row=0, column=3) #page3 self.page3Frame = Frame(self.p3) self.page3Frame.pack() self.startB = Button(self.page3Frame, text="Start Game", command=self.hello) self.startB.pack()
def __init__(self, master): self.master = master # Define variables self.row = IntVar() self.row = None self.jmeno = StringVar() self.prijmeni = StringVar() self.rc = StringVar() self.ulice = StringVar() self.cp = StringVar() self.mesto = StringVar() self.psc = StringVar() # Multi List Box self.multiListBox = table.MultiListbox(master, (('Jméno', 20), ('Příjmení', 20), ('Rodné číslo', 12))) # Insert data for i in range(len(data)): self.multiListBox.insert(END, (data[i][0], data[i][1], data[i][2])) self.multiListBox.pack(expand=YES, fill=BOTH, padx=10, pady=10) # Subscribe -> on click call edit on clicked row self.multiListBox.subscribe(lambda row: self.select(row)) # Osobni udaje self.osobniUdajeFrame = Frame(master) self.osobniUdajeFrame.pack(padx=10, pady=20, side=TOP) # Jmeno self.jmenoLabel = Label(self.osobniUdajeFrame, text="Jméno:") self.jmenoLabel.grid(row=1, column=1) self.jmenoEntry = Entry(self.osobniUdajeFrame, width=20) self.jmenoEntry.grid(row=1, column=2) # Prijmeni self.prijmeniLabel = Label(self.osobniUdajeFrame, text="Příjmení:") self.prijmeniLabel.grid(row=2, column=1) self.prijmeniEntry = Entry(self.osobniUdajeFrame, width=20) self.prijmeniEntry.grid(row=2, column=2) # Rodne cislo self.rodneCisloLabel = Label(self.osobniUdajeFrame, text="Rodné číslo:") self.rodneCisloLabel.grid(row=3, column=1) self.rodneCisloEntry = Entry(self.osobniUdajeFrame, width=13) self.rodneCisloEntry.grid(row=3, column=2, sticky=W) # Note Book self.noteBook = tix.NoteBook(master) self.noteBook.add("adresaPage", label="Adresa") self.noteBook.add("poznamkaPage", label="Poznámka") # Adresa subwidgets self.adresaPage = self.noteBook.subwidget_list["adresaPage"] # Poznamka subwidgets self.poznamkaPage = self.noteBook.subwidget_list["poznamkaPage"] self.noteBook.pack(fill=BOTH, side=TOP) # ADRESA self.adresaLabelFrame = LabelFrame(self.adresaPage, text="Adresa") self.adresaLabelFrame.pack(fill=BOTH, side=TOP) self.adresaFrame = Frame(self.adresaLabelFrame, padx=10, pady=10) self.adresaFrame.pack(side=TOP, expand=1) self.uliceLabel = Label(self.adresaFrame, text="Ulice: ", padx=4, pady=4) self.uliceLabel.grid(row=1, column=1) self.mestoLabel = Label(self.adresaFrame, text="Město: ", padx=4, pady=4) self.mestoLabel.grid(row=2, column=1) self.pscLabel = Label(self.adresaFrame, text="PSČ: ", padx=4, pady=4) self.pscLabel.grid(row=3, column=1) self.cpLabel = Label(self.adresaFrame, text="č.p.", padx=10, pady=4) self.cpLabel.grid(row=1, column=3) self.uliceEntry = Entry(self.adresaFrame, width=15) self.uliceEntry.grid(row=1, column=2, sticky=W) self.mestoEntry = Entry(self.adresaFrame, width=20) self.mestoEntry.grid(row=2, column=2, sticky=W) self.pscEntry = Entry(self.adresaFrame, width=10) self.pscEntry.grid(row=3, column=2, sticky=W) self.cpEntry = Entry(self.adresaFrame, width=8) self.cpEntry.grid(row=1, column=4) # POZNAMKA self.poznamkaLabelFrame = LabelFrame(self.poznamkaPage, text="Poznámka") self.poznamkaLabelFrame.pack(fill=BOTH, expand=1, side=TOP) self.poznamkaEntry = Text(self.poznamkaLabelFrame, height=10) self.poznamkaEntry.pack() # Tlacitka self.buttonsFrame = Frame(master) self.buttonsFrame.pack(padx=10, pady=20) self.cancelButton = Button(self.buttonsFrame, text="Cancel", width=15, command=self.clear) self.cancelButton.pack(pady=10, side=LEFT) self.newRecordButton = Button(self.buttonsFrame, text="Nový záznam", width=15, command=self.newRecord) self.newRecordButton.pack(pady=10, side=LEFT) self.saveRecordButton = Button(self.buttonsFrame, text="Uložit záznam", width=15, command=self.saveRecord) self.saveRecordButton.pack(pady=10, side=LEFT) self.showDetailsButton = Button(self.buttonsFrame, text="Zobrazit detaily", width=15, command=self.showDetails) self.showDetailsButton.pack(pady=10, side=LEFT)
def __init__(self, master): self._row = IntVar() self._row = None self._jmeno = StringVar() self._surname = StringVar() self._birth_number = StringVar() self._street = StringVar() self._number = StringVar() self._city = StringVar() self._zip = StringVar() self._someText = StringVar() # menu - TODO self._menu = Menu(master) self._menu.add_command(label="Soubor", command=self.hello) self._menu.add_command(label="Nastavení", command=self.hello) self._menu.add_command(label="Nápověda", command=self.hello) master.config(menu=self._menu) self._menuRightClick = Menu(master) self._menuRightClick.add_command(label="Nový záznam", command=self._new) self._menuRightClick.add_command(label="Uložit záznam", command=self._save) self._menuRightClick.add_command(label="Konec", command=self._endProgram) def popup(event): self._menuRightClick.post(event.x_root, event.y_root) # -- New Button self._ImageButtonsFrame = Frame(master, relief=GROOVE) self._ImageButtonsFrame.bind("<Button-3>", popup) self._imageButtonNew = Button(self._ImageButtonsFrame, command=self._new) self._photoOne = PhotoImage(file="newfile.png") self._imageButtonNew.config(image=self._photoOne, width=100, height=100) self._imageButtonNew.pack(side=LEFT, padx=8, pady=1) # -- Save Button self._imageButtonSave = Button(self._ImageButtonsFrame, command=self._save, width=10, height=4) self._photoTwo = PhotoImage(file="savefile.png") self._imageButtonSave.config(image=self._photoTwo, width=100, height=100) self._imageButtonSave.pack(side=LEFT, padx=8, pady=1) self._ImageButtonsFrame.pack(fill=X, padx=8, pady=1) self._mlb = table.MultiListbox(master, (('Jméno', 20), ('Příjmení', 20), ('Rodné číslo', 12))) for i in range(len(data)): self._mlb.insert(END, (data[i][0], data[i][1], data[i][2])) self._mlb.pack(expand=YES, fill=BOTH, padx=10, pady=10) #self._mlb.subscribe( lambda row: self._edit( row ) ) self._mlb.subscribe(self._edit) # form - TODO # -- Frame pro dalsi sekci self._frameAddNext = Frame(master, relief=GROOVE) self._frameAddNext.pack(fill=X, expand=1, padx=2, pady=2) # -- Frame pro pridani textu self._frameAddText = Frame(self._frameAddNext, relief=GROOVE) self._frameAddText.pack(fill=X, side=LEFT, expand=1, padx=2, pady=2) # -- Frame pro pridani inputu self._frameAddInput = Frame(self._frameAddNext, relief=GROOVE) self._frameAddInput.pack(fill=X, side=RIGHT, expand=1, padx=2, pady=2) # -- Frame pro jmeno self._frameAddInfo = Frame(self._frameAddText, relief=GROOVE) self._frameAddInfo.pack(side=RIGHT, padx=2, pady=2) # -- Text k jmenu self._labelName = Label(self._frameAddInfo, text="Jméno:") self._labelName.pack(padx=8, pady=1) # -- Text k prijmeni self._labelSurname = Label(self._frameAddInfo, text="Příjmeni:") self._labelSurname.pack(padx=8, pady=1) # -- Text k rodnemu cislu self._labelPIN = Label(self._frameAddInfo, text="Rodné číslo:") self._labelPIN.pack(padx=8, pady=1) # -- Frame pro jmeno self._frameAddData = Frame(self._frameAddInput, relief=GROOVE) self._frameAddData.pack(side=LEFT, padx=2, pady=2) # -- Misto k zapsani jmena self._inputName = Entry(self._frameAddData, width=14) self._inputName.pack(padx=8, pady=1) # -- Misto k zapsani prijmeni self._inputSurname = Entry(self._frameAddData, width=14) self._inputSurname.pack(padx=8, pady=1) # -- Misto k zapsani rodneho cisla self._inputPIN = Entry(self._frameAddData, width=14) self._inputPIN.pack(padx=8, pady=1) # tabs - TODO # -- Frame pro pridani inputu self._frameAddNoteBook = Frame( master, relief=GROOVE, ) self._frameAddNoteBook.pack(fill=BOTH, expand=1, padx=2, pady=2) self.nb = tix.NoteBook(self._frameAddNoteBook) self.nb.add("page1", label="Adresa") self.nb.add("page2", label="Poznámka") self.p1 = self.nb.subwidget_list["page1"] self.p2 = self.nb.subwidget_list["page2"] self.nb.pack(expand=1, fill=BOTH) #A1 self._adressFrame = Frame(self.p1, relief=GROOVE, borderwidth=2) # -- Frame pro prvni radek self._firstRow = Frame(self.p1, relief=GROOVE) self._addressLabel = Label(self._firstRow, text="Ulice:") self._addressLabel.pack(side=LEFT, padx=8, pady=1) self._addressInput = Entry(self._firstRow, width=14) self._addressInput.pack(side=LEFT, padx=8, pady=1) self._numberDescLabel = Label(self._firstRow, text="č.p.:") self._numberDescLabel.pack(expand=1, side=LEFT, padx=18, pady=1) self._numberDescInput = Entry(self._firstRow, width=14) self._numberDescInput.pack(expand=1, side=LEFT, padx=8, pady=1) self._firstRow.pack(fill=X, expand=1) # -- Frame pro druhy radek self._secondRow = Frame(self.p1, relief=GROOVE) self._cityLabel = Label(self._secondRow, text="Město:") self._cityLabel.pack(side=LEFT, padx=8, pady=1) self._cityInput = Entry(self._secondRow, width=14) self._cityInput.pack(side=LEFT, padx=8, pady=1) self._secondRow.pack(fill=X, expand=1) # -- Frame pro treti radek self._thirdRow = Frame(self.p1, relief=GROOVE) self._PSCLabel = Label(self._thirdRow, text="PSČ:") self._PSCLabel.pack(side=LEFT, padx=8, pady=1) self._PSCInput = Entry(self._thirdRow, width=14) self._PSCInput.pack(side=LEFT, padx=8, pady=1) self._thirdRow.pack(fill=X, expand=1) self._adressFrame.pack(fill=X, expand=1) #B1 self._someTextFrame = Frame(self.p2, relief=GROOVE, borderwidth=2) self._someTextLabel = Label(self._someTextFrame, text="Poznámka") self._someTextLabel.pack(side=LEFT, padx=8, pady=1) self._someTextInput = Entry(self._someTextFrame, width=14) self._someTextInput.pack(side=LEFT, padx=8, pady=1) self._someTextFrame.pack(fill=BOTH, expand=1) # buttons - TODO self._buttonFrame = Frame(master, relief=GROOVE) self._ButtonEnd = Button(self._buttonFrame, text="Konec", command=self._endProgram, width=10, height=1) self._ButtonEnd.pack(side=LEFT, pady=2, padx=4) self._ButtonNew = Button(self._buttonFrame, text="Nový záznam", command=self._new, width=10, height=1) self._ButtonNew.pack(side=LEFT, pady=2, padx=4) self._ButtonSave = Button(self._buttonFrame, text="Uložit záznam", command=self._save, width=10, height=1) self._ButtonSave.pack(side=LEFT, pady=2, padx=4) self._buttonFrame.pack() self._fullNameLabel = Label(master, text="") self._fullNameLabel.pack(side=LEFT, padx=8, pady=1)
def __init__(self, path="", **options): self.glos = Glossary(ui=self) self.pref = {} self.pref_load(**options) ############################################# rootWin = self.rootWin = tix.Tk() # a hack that hides the window until we move it to the center of screen if os.sep == "\\": # Windows rootWin.attributes('-alpha', 0.0) else: # Linux rootWin.withdraw() tix.Frame.__init__(self, rootWin) rootWin.title("PyGlossary (Tkinter)") rootWin.resizable(True, False) ######## set_window_icon(rootWin) rootWin.bind('<Escape>', lambda e: rootWin.quit()) ######## self.pack(fill="x") # rootWin.bind("<Configure>", self.resized) ###################### self.glos = Glossary(ui=self) self.pref = {} self.pref_load() self.pathI = "" self.pathO = "" fcd_dir = join(homeDir, "Desktop") if isfile(self.fcd_dir_save_path): try: with open(self.fcd_dir_save_path, encoding="utf-8") as fp: fcd_dir = fp.read().strip("\n") except Exception: log.exception("") self.fcd_dir = fcd_dir ###################### notebook = tix.NoteBook(self) notebook.add("tabConvert", label="Convert", underline=0) # notebook.add("tabReverse", label="Reverse", underline=0) notebook.add("tabAbout", label="About", underline=0) convertFrame = tix.Frame(notebook.tabConvert) aboutFrame = tix.Frame(notebook.tabAbout) convertVpaned = ttk.PanedWindow(convertFrame, orient=tk.VERTICAL) ###################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text="Read from format") label.pack(side="left") ## comboVar = tk.StringVar() combo = ttk.OptionMenu( frame, comboVar, None, # default *Glossary.readDesc, ) combo.pack(side="left") comboVar.trace("w", self.inputComboChanged) self.formatVarInputConvert = comboVar ## self.readOptions = {} # type: Dict[str, Any] self.writeOptions = {} # type: Dict[str, Any] ## self.readOptionsButton = FormatOptionsButton( "Read", self.readOptions, self.formatVarInputConvert, master=frame, ) ## frame.pack(fill="x") ################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text=" Path:") label.pack(side="left") ## entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) entry.bind_all("<KeyPress>", self.inputEntryChanged) self.entryInputConvert = entry ## button = ttk.Button( frame, text="Browse", command=self.browseInputConvert, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## frame.pack(fill="x") ###################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text="Write to format ") label.pack(side="left") ## comboVar = tk.StringVar() combo = ttk.OptionMenu( frame, comboVar, None, # default *Glossary.writeDesc, ) combo.pack(side="left") comboVar.trace("w", self.outputComboChanged) self.formatVarOutputConvert = comboVar ## self.writeOptionsButton = FormatOptionsButton( "Write", self.writeOptions, self.formatVarOutputConvert, master=frame, ) ## frame.pack(fill="x") ################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text=" Path:") label.pack(side="left") ## entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) entry.bind_all("<KeyPress>", self.outputEntryChanged) self.entryOutputConvert = entry ## button = ttk.Button( frame, text="Browse", command=self.browseOutputConvert, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## frame.pack(fill="x") ####### frame = tix.Frame(convertFrame) label = ttk.Label(frame, text=" " * 15) label.pack( side="left", fill="x", expand=True, ) button = ttk.Button( frame, text="Convert", command=self.convert, # bg="#00e000", # activebackground="#22f022", ) button.pack( side="left", fill="x", expand=True, ) ### frame.pack(fill="x") convertVpaned.add(frame) ###### convertFrame.pack(fill="x") ################# console = tix.Text(convertVpaned, height=15, background="#000000") # self.consoleH = 15 # sbar = Tix.Scrollbar( # convertVpaned, # orien=Tix.VERTICAL, # command=console.yview # ) # sbar.grid ( row=0, column=1) # console["yscrollcommand"] = sbar.set # console.grid() console.pack(fill="both", expand=True) log.addHandler(TkTextLogHandler(console), ) console.insert("end", "Console:\n") #### convertVpaned.add(console) convertVpaned.pack(fill="both", expand=True) self.console = console ################## # convertVpaned.grid() # bottomFrame.grid() # self.grid() ##################### # lbox = Tix.Listbox(convertFrame) # lbox.insert(0, "aaaaaaaa", "bbbbbbbbbbbbbbbbbbbb") # lbox.pack(fill="x") ############## # __________________________ Reverse Tab __________________________ # # revFrame = tix.Frame(notebook.tabReverse) # revFrame.pack(fill="x") # ###################### # frame = tix.Frame(revFrame) # ## # label = ttk.Label(frame, text="Read from format") # label.pack(side="left") # ## # comboVar = tk.StringVar() # combo = ttk.OptionMenu( # frame, # comboVar, # None, # default # *Glossary.readDesc, # ) # combo.pack(side="left") # self.combobox_r_i = comboVar # ## # frame.pack(fill="x") # ################### # frame = tix.Frame(revFrame) # ## # label = ttk.Label(frame, text=" Path:") # label.pack(side="left") # ## # entry = tix.Entry(frame) # entry.pack(side="left", fill="x", expand=True) # # entry.bind_all("<KeyPress>", self.entry_r_i_changed) # self.entry_r_i = entry # ## # button = ttk.Button( # frame, # text="Browse", # command=self.reverseBrowseInput, # # bg="#f0f000", # # activebackground="#f6f622", # ) # button.pack(side="left") # ## # button = ttk.Button( # frame, # text="Load", # command=self.reverseLoad, # # bg="#7777ff", # ) # button.pack(side="left") # ### # frame.pack(fill="x") # ################### # frame = tix.Frame(revFrame) # ## # label = ttk.Label(frame, text="Output Tabfile") # label.pack(side="left") # ### # entry = tix.Entry(frame) # entry.pack(side="left", fill="x", expand=True) # # entry.bind_all("<KeyPress>", self.entry_r_i_changed) # self.entry_r_o = entry # ## # button = ttk.Button( # frame, # text="Browse", # command=self.reverseBrowseOutput, # # bg="#f0f000", # # activebackground="#f6f622", # ) # button.pack(side="left") # ## # frame.pack(fill="x") # _________________________________________________________________ # aboutFrame2 = tix.Frame(aboutFrame) ## label = newLabelWithImage(aboutFrame2, file=logo) label.pack(side="left") ## ## label = ttk.Label(aboutFrame2, text=f"PyGlossary\nVersion {core.VERSION}") label.pack(side="left") ## aboutFrame2.pack(side="top", fill="x") ## style = ttk.Style(self) style.configure("TNotebook", tabposition="wn") # ws => to the left (west) and to the bottom (south) # wn => to the left (west) and at top aboutNotebook = ttk.Notebook(aboutFrame, style="TNotebook") aboutFrame3 = tk.Frame(aboutNotebook) authorsFrame = tk.Frame(aboutNotebook) licenseFrame = tk.Frame(aboutNotebook) # tabImg = tk.PhotoImage(file=join(resDir, "dialog-information-22.png")) # tabImg = tk.PhotoImage(file=join(resDir, "author-22.png")) aboutNotebook.add( aboutFrame3, text="\n About \n", # image=tabImg, # not working # compound=tk.TOP, # padding=50, # not working ) aboutNotebook.add( authorsFrame, text="\nAuthors\n", ) aboutNotebook.add( licenseFrame, text="\nLicense\n", ) label = newReadOnlyText( aboutFrame3, text=f"{aboutText}\nHome page: {homePage}", font=("DejaVu Sans", 11, ""), ) label.pack(fill="x") authorsText = "\n".join(authors) authorsText = authorsText.replace("\t", " ") label = newReadOnlyText( authorsFrame, text=authorsText, font=("DejaVu Sans", 11, ""), ) label.pack(fill="x") label = newReadOnlyText( licenseFrame, text=licenseText, font=("DejaVu Sans", 11, ""), ) label.pack(fill="x") aboutNotebook.pack(fill="x") aboutFrame.pack(fill="x") # _________________________________________________________________ # notebook.pack(fill="both", expand=True) # _________________________________________________________________ # statusBarframe = tix.Frame(self) clearB = ttk.Button( statusBarframe, text="Clear", command=self.console_clear, # bg="black", # fg="#ffff00", # activebackground="#333333", # activeforeground="#ffff00", ) clearB.pack(side="left") #### label = ttk.Label(statusBarframe, text="Verbosity") label.pack(side="left") ## comboVar = tk.StringVar() combo = ttk.OptionMenu( statusBarframe, comboVar, log.getVerbosity(), # default 0, 1, 2, 3, 4, ) comboVar.trace("w", self.verbosityChanged) combo.pack(side="left") self.verbosityCombo = comboVar ##### pbar = ProgressBar(statusBarframe, width=400) pbar.pack(side="left", fill="x", expand=True) self.pbar = pbar statusBarframe.pack(fill="x") self.progressTitle = "" # _________________________________________________________________ # frame3 = tix.Frame(self) closeB = ttk.Button( frame3, text="Close", command=rootWin.quit, # bg="#ff0000", # activebackground="#ff5050", ) closeB.pack(side="right") frame3.pack(fill="x") # _________________________________________________________________ # centerWindow(rootWin) # show the window if os.sep == "\\": # Windows rootWin.attributes('-alpha', 1.0) else: # Linux rootWin.deiconify() if path: self.entryInputConvert.insert(0, path) self.inputEntryChanged() self.outputEntryChanged() self.load()
def __init__(self, path='', **options): self.running = False self.glos = Glossary(ui=self) self.pref = {} self.pref_load(**options) ############################################# master = tix.Tk() tix.Frame.__init__(self, master) master.title('PyGlossary (Tkinter)') master.resizable(True, False) ######## #icon = Tix.BitmapImage(file=xbmLogo) #master.wm_iconbitmap(icon) #master.wm_iconbitmap(xbmLogo) #bit = Tix.PhotoImage(file=join(uiDir, 'pyglossary.gif'), format='gif') #lb = Tix.Label(None,image=bit) #lb.grid() #master.iconwindow(icon, 'pyglossary') #master.wm_iconimage(bit) #master.wm_iconname('dot') #help(master.wm_iconbitmap) #for x in dir(master): # if 'wm_' in x: # log.debug(x) master.wm_iconbitmap('@%s' % xbmLogo) ######## self.pack(fill='x') #master.bind('<Configure>', self.resized) ###################### self.running = False self.glos = Glossary(ui=self) self.pref = {} self.pref_load() self.pathI = '' self.pathO = '' self.fcd_dir = join(homeDir, 'Desktop') ###################### vpaned = tk.PanedWindow(self, orient=tk.VERTICAL) notebook = tix.NoteBook(vpaned) notebook.add('tab1', label='Convert', underline=0) notebook.add('tab2', label='Reverse', underline=0) convertFrame = tix.Frame(notebook.tab1) ###################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text='Read from format') label.pack(side='left') ## comboVar = tk.StringVar() combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc) #comboVar.set(Glossary.readDesc[0]) comboVar.set(noneItem) combo.pack(side='left') self.combobox_i = comboVar ## frame.pack(fill='x') ################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text=' Path:') label.pack(side='left') ## entry = tix.Entry(frame) entry.pack(side='left', fill='x', expand=True) entry.bind_all('<KeyPress>', self.entry_changed) self.entry_i = entry ## button = tix.Button( frame, text='Browse', command=self.browse_i, #bg='#f0f000', #activebackground='#f6f622', ) button.pack(side='left') ## frame.pack(fill='x') ###################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text='Write to format ') label.pack(side='left') ## comboVar = tk.StringVar() combo = tk.OptionMenu(frame, comboVar, *Glossary.writeDesc) #comboVar.set(Glossary.writeDesc[0]) comboVar.set(noneItem) combo.pack(side='left') combo.bind('<Configure>', self.combobox_o_changed) self.combobox_o = comboVar ## frame.pack(fill='x') ################### frame = tix.Frame(convertFrame) ## label = tix.Label(frame, text=' Path:') label.pack(side='left') ## entry = tix.Entry(frame) entry.pack(side='left', fill='x', expand=True) #entry.bind_all('<KeyPress>', self.entry_changed) self.entry_o = entry ## button = tix.Button( frame, text='Browse', command=self.browse_o, #bg='#f0f000', #activebackground='#f6f622', ) button.pack(side='left') ## frame.pack(fill='x') ####### frame = tix.Frame(convertFrame) label = tix.Label(frame, text=' ' * 15) label.pack( side='left', fill='x', expand=True, ) button = tix.Button( frame, text='Convert', command=self.convert, #bg='#00e000', #activebackground='#22f022', ) button.pack( side='left', fill='x', expand=True, ) ### frame.pack(fill='x') ###### convertFrame.pack(fill='x') vpaned.add(notebook) ################# console = tix.Text(vpaned, height=15, background='#000000') #self.consoleH = 15 #sbar = Tix.Scrollbar(vpaned, orien=Tix.VERTICAL, command=console.yview) #sbar.grid ( row=0, column=1) #console['yscrollcommand'] = sbar.set #console.grid() console.pack(fill='both', expand=True) log.addHandler(TkTextLogHandler(console), ) console.insert('end', 'Console:\n') #### vpaned.add(console) vpaned.pack(fill='both', expand=True) self.console = console ################## frame2 = tix.Frame(self) clearB = tix.Button( frame2, text='Clear', command=self.console_clear, #bg='black', #fg='#ffff00', #activebackground='#333333', #activeforeground='#ffff00', ) clearB.pack(side='left') #### label = tix.Label(frame2, text='Verbosity') label.pack(side='left') ## comboVar = tk.StringVar() combo = tk.OptionMenu( frame2, comboVar, 0, 1, 2, 3, 4, ) comboVar.set(log.getVerbosity()) comboVar.trace('w', self.verbosityChanged) combo.pack(side='left') self.verbosityCombo = comboVar ##### pbar = ProgressBar(frame2, width=400) pbar.pack(side='left', fill='x', expand=True) self.pbar = pbar frame2.pack(fill='x') self.progressTitle = '' ############# #vpaned.grid() #bottomFrame.grid() #self.grid() ##################### #lbox = Tix.Listbox(convertFrame) #lbox.insert(0, 'aaaaaaaa', 'bbbbbbbbbbbbbbbbbbbb') #lbox.pack(fill='x') ############## frame3 = tix.Frame(self) aboutB = tix.Button( frame3, text='About', command=self.about_clicked, #bg='#e000e0', #activebackground='#f030f0', ) aboutB.pack(side='right') closeB = tix.Button( frame3, text='Close', command=self.quit, #bg='#ff0000', #activebackground='#ff5050', ) closeB.pack(side='right') frame3.pack(fill='x') ############### Reverse Tab #################### revFrame = tix.Frame(notebook.tab2) revFrame.pack(fill='x') ###################### frame = tix.Frame(revFrame) ## label = tix.Label(frame, text='Read from format') label.pack(side='left') ## comboVar = tk.StringVar() combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc) #comboVar.set(Glossary.readDesc[0]) comboVar.set(noneItem) combo.pack(side='left') self.combobox_r_i = comboVar ## frame.pack(fill='x') ################### frame = tix.Frame(revFrame) ## label = tix.Label(frame, text=' Path:') label.pack(side='left') ## entry = tix.Entry(frame) entry.pack(side='left', fill='x', expand=True) #entry.bind_all('<KeyPress>', self.entry_r_i_changed) self.entry_r_i = entry ## button = tix.Button( frame, text='Browse', command=self.r_browse_i, #bg='#f0f000', #activebackground='#f6f622', ) button.pack(side='left') ## button = tix.Button( frame, text='Load', command=self.r_load, #bg='#7777ff', ) button.pack(side='left') ### frame.pack(fill='x') ################### frame = tix.Frame(revFrame) ## label = tix.Label(frame, text='Output Tabfile') label.pack(side='left') ### entry = tix.Entry(frame) entry.pack(side='left', fill='x', expand=True) #entry.bind_all('<KeyPress>', self.entry_r_i_changed) self.entry_r_o = entry ## button = tix.Button( frame, text='Browse', command=self.r_browse_o, #bg='#f0f000', #activebackground='#f6f622', ) button.pack(side='left') ## frame.pack(fill='x') ############################## if path != '': self.entry_i.insert(0, path) self.entry_changed() self.load()
def __init__(self, path="", **options): self.glos = Glossary(ui=self) self.pref = {} self.pref_load(**options) ############################################# rootWin = self.rootWin = tix.Tk() # a hack that hides the window until we move it to the center of screen if os.sep == "\\": # Windows rootWin.attributes('-alpha', 0.0) else: # Linux rootWin.withdraw() tix.Frame.__init__(self, rootWin) rootWin.title("PyGlossary (Tkinter)") rootWin.resizable(True, False) ######## set_window_icon(rootWin) rootWin.bind('<Escape>', lambda e: rootWin.quit()) ######## self.pack(fill="x") # rootWin.bind("<Configure>", self.resized) ###################### self.glos = Glossary(ui=self) self.pref = {} self.pref_load() self.pathI = "" self.pathO = "" fcd_dir = join(homeDir, "Desktop") if isfile(self.fcd_dir_save_path): try: with open(self.fcd_dir_save_path, encoding="utf-8") as fp: fcd_dir = fp.read().strip("\n") except Exception: log.exception("") self.fcd_dir = fcd_dir ###################### vpaned = ttk.PanedWindow(self, orient=tk.VERTICAL) notebook = tix.NoteBook(vpaned) notebook.add("tabConvert", label="Convert", underline=0) # notebook.add("tabReverse", label="Reverse", underline=0) convertFrame = tix.Frame(notebook.tabConvert) ###################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text="Read from format") label.pack(side="left") ## comboVar = tk.StringVar() combo = ttk.OptionMenu( frame, comboVar, None, # default *Glossary.readDesc, ) combo.pack(side="left") comboVar.trace("w", self.inputComboChanged) self.formatVarInputConvert = comboVar ## self.readOptions = {} # type: Dict[str, Any] self.writeOptions = {} # type: Dict[str, Any] ## self.readOptionsButton = FormatOptionsButton( "Read", self.readOptions, self.formatVarInputConvert, master=frame, ) ## frame.pack(fill="x") ################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text=" Path:") label.pack(side="left") ## entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) entry.bind_all("<KeyPress>", self.inputEntryChanged) self.entryInputConvert = entry ## button = ttk.Button( frame, text="Browse", command=self.browseInputConvert, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## frame.pack(fill="x") ###################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text="Write to format ") label.pack(side="left") ## comboVar = tk.StringVar() combo = ttk.OptionMenu( frame, comboVar, None, # default *Glossary.writeDesc, ) combo.pack(side="left") comboVar.trace("w", self.outputComboChanged) self.formatVarOutputConvert = comboVar ## self.writeOptionsButton = FormatOptionsButton( "Write", self.writeOptions, self.formatVarOutputConvert, master=frame, ) ## frame.pack(fill="x") ################### frame = tix.Frame(convertFrame) ## label = ttk.Label(frame, text=" Path:") label.pack(side="left") ## entry = tix.Entry(frame) entry.pack(side="left", fill="x", expand=True) entry.bind_all("<KeyPress>", self.outputEntryChanged) self.entryOutputConvert = entry ## button = ttk.Button( frame, text="Browse", command=self.browseOutputConvert, # bg="#f0f000", # activebackground="#f6f622", ) button.pack(side="left") ## frame.pack(fill="x") ####### frame = tix.Frame(convertFrame) label = ttk.Label(frame, text=" " * 15) label.pack( side="left", fill="x", expand=True, ) button = ttk.Button( frame, text="Convert", command=self.convert, # bg="#00e000", # activebackground="#22f022", ) button.pack( side="left", fill="x", expand=True, ) ### frame.pack(fill="x") ###### convertFrame.pack(fill="x") vpaned.add(notebook) ################# console = tix.Text(vpaned, height=15, background="#000000") # self.consoleH = 15 # sbar = Tix.Scrollbar( # vpaned, # orien=Tix.VERTICAL, # command=console.yview # ) # sbar.grid ( row=0, column=1) # console["yscrollcommand"] = sbar.set # console.grid() console.pack(fill="both", expand=True) log.addHandler(TkTextLogHandler(console), ) console.insert("end", "Console:\n") #### vpaned.add(console) vpaned.pack(fill="both", expand=True) self.console = console ################## frame2 = tix.Frame(self) clearB = ttk.Button( frame2, text="Clear", command=self.console_clear, # bg="black", # fg="#ffff00", # activebackground="#333333", # activeforeground="#ffff00", ) clearB.pack(side="left") #### label = ttk.Label(frame2, text="Verbosity") label.pack(side="left") ## comboVar = tk.StringVar() combo = ttk.OptionMenu( frame2, comboVar, log.getVerbosity(), # default 0, 1, 2, 3, 4, ) comboVar.trace("w", self.verbosityChanged) combo.pack(side="left") self.verbosityCombo = comboVar ##### pbar = ProgressBar(frame2, width=400) pbar.pack(side="left", fill="x", expand=True) self.pbar = pbar frame2.pack(fill="x") self.progressTitle = "" ############# # vpaned.grid() # bottomFrame.grid() # self.grid() ##################### # lbox = Tix.Listbox(convertFrame) # lbox.insert(0, "aaaaaaaa", "bbbbbbbbbbbbbbbbbbbb") # lbox.pack(fill="x") ############## frame3 = tix.Frame(self) aboutB = ttk.Button( frame3, text="About", command=self.about_clicked, # bg="#e000e0", # activebackground="#f030f0", ) aboutB.pack(side="right") closeB = ttk.Button( frame3, text="Close", command=rootWin.quit, # bg="#ff0000", # activebackground="#ff5050", ) closeB.pack(side="right") frame3.pack(fill="x") # __________________________ Reverse Tab __________________________ # # revFrame = tix.Frame(notebook.tabReverse) # revFrame.pack(fill="x") # ###################### # frame = tix.Frame(revFrame) # ## # label = ttk.Label(frame, text="Read from format") # label.pack(side="left") # ## # comboVar = tk.StringVar() # combo = ttk.OptionMenu( # frame, # comboVar, # None, # default # *Glossary.readDesc, # ) # combo.pack(side="left") # self.combobox_r_i = comboVar # ## # frame.pack(fill="x") # ################### # frame = tix.Frame(revFrame) # ## # label = ttk.Label(frame, text=" Path:") # label.pack(side="left") # ## # entry = tix.Entry(frame) # entry.pack(side="left", fill="x", expand=True) # # entry.bind_all("<KeyPress>", self.entry_r_i_changed) # self.entry_r_i = entry # ## # button = ttk.Button( # frame, # text="Browse", # command=self.reverseBrowseInput, # # bg="#f0f000", # # activebackground="#f6f622", # ) # button.pack(side="left") # ## # button = ttk.Button( # frame, # text="Load", # command=self.reverseLoad, # # bg="#7777ff", # ) # button.pack(side="left") # ### # frame.pack(fill="x") # ################### # frame = tix.Frame(revFrame) # ## # label = ttk.Label(frame, text="Output Tabfile") # label.pack(side="left") # ### # entry = tix.Entry(frame) # entry.pack(side="left", fill="x", expand=True) # # entry.bind_all("<KeyPress>", self.entry_r_i_changed) # self.entry_r_o = entry # ## # button = ttk.Button( # frame, # text="Browse", # command=self.reverseBrowseOutput, # # bg="#f0f000", # # activebackground="#f6f622", # ) # button.pack(side="left") # ## # frame.pack(fill="x") # _________________________________________________________________ # centerWindow(rootWin) # show the window if os.sep == "\\": # Windows rootWin.attributes('-alpha', 1.0) else: # Linux rootWin.deiconify() if path: self.entryInputConvert.insert(0, path) self.inputEntryChanged() self.outputEntryChanged() self.load()
def fontdialog(self): self.fdialog = Toplevel(self) self.fdialog.wm_title("Písmo") self.fdialog.minsize(600, 400) self.fdialog.resizable(False, False) #buttons in fontdialog btnFrame = Frame(self.fdialog) btnFrame.pack(side=BOTTOM, fill=X) btnCancelPrint = Button(btnFrame, text="Storno", width=15, command=self.fdialog.destroy) btnCancelPrint.pack(side=RIGHT, padx=20, pady=2) btnokPrint = Button(btnFrame, text="OK", width=15) btnokPrint.pack(side=RIGHT, padx=20, pady=2) self.ntbfont = tix.NoteBook(self.fdialog) self.ntbfont.add("page1", label="Písmo") self.ntbfont.add("page2", label="Upřesnit") self.p1 = self.ntbfont.subwidget_list["page1"] self.p2 = self.ntbfont.subwidget_list["page2"] self.ntbfont.pack(side='top', expand=1, fill=BOTH, padx=5, pady=5) #help frames self.liboxFrame = Frame(self.p1) self.liboxFrame.pack(side=TOP, expand=1, fill=BOTH) self.otherFrame = Frame(self.p1) self.otherFrame.pack(side=BOTTOM, expand=1, fill=BOTH) #font family self.liboxfamily = Listbox(self.liboxFrame, selectmode=SINGLE, exportselection=0) self.liboxfamily.pack(side=LEFT, fill=BOTH, expand=1, padx=4, pady=4) scrollbarY = Scrollbar(self.liboxfamily) scrollbarY.pack(side=RIGHT, fill=Y) self.liboxfamily.config(yscrollcommand=scrollbarY.set) scrollbarY.config(command=self.liboxfamily.yview) fonts = list(font.families()) fonts.sort() for i in fonts: self.liboxfamily.insert(END, i) self.liboxfamily.select_set(335) #font style self.liboxstyle = Listbox(self.liboxFrame, selectmode=SINGLE, exportselection=0) self.liboxstyle.pack(side=LEFT, fill=BOTH, expand=1, padx=4, pady=4) scrollbarY2 = Scrollbar(self.liboxstyle) scrollbarY2.pack(side=RIGHT, fill=Y) self.liboxstyle.config(yscrollcommand=scrollbarY2.set) scrollbarY2.config(command=self.liboxstyle.yview) for i in ['Normální', 'Kurzíva', 'Tučené', 'Tučené Kurzíva']: self.liboxstyle.insert(END, i) self.liboxstyle.select_set(0) #font size self.liboxsize = Listbox(self.liboxFrame, selectmode=SINGLE, exportselection=0) self.liboxsize.pack(side=LEFT, fill=BOTH, expand=1, padx=4, pady=4) scrollbarY3 = Scrollbar(self.liboxsize) scrollbarY3.pack(side=RIGHT, fill=Y) self.liboxsize.config(yscrollcommand=scrollbarY3.set) scrollbarY3.config(command=self.liboxsize.yview) for i in [ 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72 ]: self.liboxsize.insert(END, i) self.liboxsize.select_set(0) self.lblfrExample = LabelFrame(self.otherFrame, text="Ukázka") self.lblfrExample.pack(side=LEFT, expand=1, fill=BOTH, padx=20, pady=20) self.lblExample = Label(self.lblfrExample, text="AaBbYy") self.lblExample.pack(expand=1, fill=BOTH, padx=2, pady=2) localFrame = Frame(self.otherFrame) localFrame.pack(side=RIGHT, expand=1, fill=BOTH, padx=2, pady=2) Label(localFrame, text="Skript:").pack(anchor=N, padx=4, pady=4) self.cboxEncoding = ttk.Combobox(localFrame, state='readonly') self.cboxEncoding['values'] = [ 'Středoevropské', 'Západní', 'Řecké', 'Turecké', 'Pobaltské', 'Cyrilice', 'Vietnamské' ] self.cboxEncoding.current(0) self.cboxEncoding.pack(anchor=N, padx=4, pady=4) #config frame lblframeChars = LabelFrame(self.p2, text="Proložení znaků") lblframeChars.pack(side=TOP, expand=1, fill=BOTH, padx=10, pady=10) frame1 = Frame(lblframeChars) frame1.pack(side=LEFT, expand=1, fill=BOTH, padx=10, pady=10) frame2 = Frame(lblframeChars) frame2.pack(side=RIGHT, expand=1, fill=BOTH, padx=10, pady=10) Label(frame1, text="Měřítko").grid(column=0, row=0, padx=2, pady=2) Label(frame1, text="Mezery").grid(column=0, row=1, padx=2, pady=2) Label(frame1, text="Umístění").grid(column=0, row=2, padx=2, pady=2) Checkbutton(frame1, text="Prokládání písem velikostí").grid(column=0, row=3, columnspan=2, padx=2, pady=2) cb1 = ttk.Combobox(frame1, values=('100%', '150%', '200%', '50%', '33%'), width=15, state='readonly') cb1.grid(column=1, row=0, padx=2, pady=2) cb1.current(0) cb2 = ttk.Combobox(frame1, values=('Normální', 'Rozšířené', 'Zúžené'), width=15, state='readonly') cb2.grid(column=1, row=1, padx=2, pady=2) cb2.current(0) cb3 = ttk.Combobox(frame1, values=('Normální', 'Zvýšené', 'Snížené'), width=15, state='readonly') cb3.grid(column=1, row=2, padx=2, pady=2) cb3.current(0) Label(frame2, text="").grid(column=0, row=0, padx=2, pady=2) Label(frame2, text="O kolik").grid(column=0, row=1, padx=2, pady=2) Label(frame2, text="O kolik").grid(column=0, row=2, padx=2, pady=2) Spinbox(frame2, from_=1, to=99, width=10, textvariable=self.sb1).grid(column=1, row=1, padx=2, pady=2) Spinbox(frame2, from_=1, to=99, width=10, textvariable=self.sb2).grid(column=1, row=2, padx=2, pady=2) Spinbox(frame2, from_=1, to=99, width=5, textvariable=self.sb3).grid(column=0, row=3, padx=2, pady=2) Label(frame2, text="Bodů a více").grid(column=1, row=3, padx=2, pady=2) #second part of congif frame self.otherFrame2 = Frame(self.p2) self.otherFrame2.pack(side=BOTTOM, expand=1, fill=BOTH) self.lblfrExample2 = LabelFrame(self.otherFrame2, text="Ukázka") self.lblfrExample2.pack(side=LEFT, expand=1, fill=BOTH, padx=20, pady=20) self.lblExample2 = Label(self.lblfrExample2, text="AaBbYy") self.lblExample2.pack(expand=1, fill=BOTH) localFrame2 = Frame(self.otherFrame2) localFrame2.pack(side=RIGHT, expand=1, fill=BOTH, padx=2, pady=2) localFrame3 = Frame(localFrame2) localFrame3.pack(side=TOP, expand=1, fill=BOTH, padx=2, pady=2) localLblFrame = Frame(localFrame3) localLblFrame.pack(side=LEFT, expand=1, fill=BOTH, pady=2) localCBFrame = Frame(localFrame3) localCBFrame.pack(side=RIGHT, expand=1, fill=BOTH, padx=2, pady=2) Label(localLblFrame, text="Ligatury").pack(side=TOP, expand=1, fill=Y, anchor=W, padx=2, pady=2) Label(localLblFrame, text="Mez. mezi čísly").pack(side=TOP, expand=1, fill=Y, anchor=W, padx=2, pady=2) Label(localLblFrame, text="Číselné tvary").pack(side=TOP, expand=1, fill=Y, anchor=W, padx=2, pady=2) Label(localLblFrame, text="Stylistické sady").pack(side=TOP, expand=1, fill=Y, anchor=W, padx=2, pady=2) cboxLig = ttk.Combobox(localCBFrame, values=('Žádné', 'Pouze standardní', 'Standardní a kotextové', 'Historické a volitelné', 'Všechny'), width=20, state='readonly') cboxLig.current(0) cboxLig.pack(side=TOP, expand=1, anchor=E, padx=2, pady=2) cboxMMC = ttk.Combobox(localCBFrame, values=('Výchozí', 'Proporční', 'Tabulkové'), width=20, state='readonly') cboxMMC.current(0) cboxMMC.pack(side=TOP, expand=1, anchor=E, padx=2, pady=2) cboxCT = ttk.Combobox(localCBFrame, values=('Výchozí', 'Vyrovnané', 'Starodávné'), width=20, state='readonly') cboxCT.current(0) cboxCT.pack(side=TOP, expand=1, anchor=E, padx=2, pady=2) cboxSS = ttk.Combobox(localCBFrame, values=(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20), width=20, state='readonly') cboxSS.current(0) cboxSS.pack(side=TOP, expand=1, anchor=E, padx=2, pady=2) cbtnPKA = Checkbutton(localFrame2, text="Používat kontextové alternativy") cbtnPKA.pack(side=BOTTOM, fill=Y, anchor=W, padx=2, pady=2) self.fdialog.grab_set() root.wait_window(self.fdialog)
def printdialog(self): self.pdialog = Toplevel(self) self.pdialog.wm_title("Tisk") self.pdialog.minsize(600, 400) self.pdialog.resizable(False, False) self.printframe = Frame(self.pdialog, padx=4, pady=4) self.printframe.pack(fill=BOTH, expand=1) self.btnframe = Frame(self.pdialog, padx=4, pady=4) self.btnframe.pack(fill=X, side='bottom') self.ntbprint = tix.NoteBook(self.printframe) self.ntbprint.add("page1", label="Obecné") self.p1 = self.ntbprint.subwidget_list["page1"] self.ntbprint.pack(side='top', expand=1, fill=BOTH) #tlacitka v printdialogu btnConfigPrint = Button(self.btnframe, text="Použij", width=15) btnConfigPrint.pack(side=RIGHT, padx=20) btnCancelPrint = Button(self.btnframe, text="Storno", width=15, command=self.pdialog.destroy) btnCancelPrint.pack(side=RIGHT, padx=20) btnPrint = Button(self.btnframe, text="Tiskni", width=15) btnPrint.pack(side=RIGHT, padx=20) btnConfigPrint.config(state=DISABLED) #labelframy v printdialogu #vyber tiskarny self.lblfrprinter = LabelFrame(self.p1, text="Výběr tiskárny") self.lblfrprinter.pack(side=TOP, fill=BOTH, expand=1, padx=10, pady=10) self.liboxprinter = Listbox(self.lblfrprinter, selectmode=SINGLE) self.liboxprinter.pack(side=TOP, fill=BOTH, expand=1) scrollbarY = Scrollbar(self.liboxprinter) scrollbarY.pack(side=RIGHT, fill=Y) self.liboxprinter.config(yscrollcommand=scrollbarY.set) scrollbarY.config(command=self.liboxprinter.yview) self.liboxprinter.insert(END, u"FAX", u"Microsoft XPS Document Writer", u"Samsung CLX-3180 Series", u"Send to OneNote", u"Síťová tiskárna", u"PDF writer") self.liboxprinter.select_set(0) self.liboxprinterframe = Frame(self.liboxprinter) self.liboxprinterframe.pack(side=BOTTOM, padx=10, pady=10) Label(self.lblfrprinter, text="Stav: ").pack(side=LEFT) Label(self.lblfrprinter, textvariable=self.status).pack(side=LEFT) Button(self.lblfrprinter, text="Předvolby").pack(side=RIGHT, padx=10, pady=10) #frame pro rozsah stranek a pocet kopii self.subPrintFrame = Frame(self.p1) self.subPrintFrame.pack(side=TOP, fill=BOTH, expand=1) #rozsah stranek self.lblfrpages = LabelFrame(self.subPrintFrame, text="Rozsah stránek") self.lblfrpages.pack(side=LEFT, fill=BOTH, expand=1, padx=10, pady=10) Radiobutton(self.lblfrpages, text="Vše", variable=self.pages, value=1).pack(anchor=W, padx=10) Radiobutton(self.lblfrpages, text="Výběr", variable=self.pages, value=2).pack(anchor=W, padx=10) Radiobutton(self.lblfrpages, text="Stránky", variable=self.pages, value=3).pack(anchor=W, padx=10) Entry(self.lblfrpages, textvariable=self.listofpages).pack(anchor=W, padx=10, pady=10, fill=X) #pocet kopii self.lblfrcopies = LabelFrame(self.subPrintFrame, text="Kopií") self.lblfrcopies.pack(side=RIGHT, fill=BOTH, expand=1, padx=10, pady=10) self.tmpFr1 = Frame(self.lblfrcopies) self.tmpFr1.pack(side=TOP, fill=BOTH, expand=1, padx=5, pady=5) Label(self.tmpFr1, text="Počet kopií").pack(side=LEFT) self.spboxCopies = Spinbox(self.tmpFr1, from_=1, to=99, textvariable=self.copies) self.spboxCopies.pack(side=RIGHT) self.tmpFr2 = Frame(self.lblfrcopies) self.tmpFr2.pack(side=BOTTOM, fill=BOTH, expand=1, padx=5, pady=5) self.icon.set(1) self.page = Label(self.tmpFr2) self.icon_up = PhotoImage(file="icons/page_up.png") self.icon_down = PhotoImage(file="icons/page_down.png") self.tmpFr3 = Frame(self.tmpFr2) self.tmpFr3.pack(side=RIGHT) Checkbutton(self.tmpFr3, text="Na výšku", variable=self.icon, onvalue=True, offvalue=False, command=self.showicon).pack(side=TOP, anchor=W) self.showicon() self.page.pack(side=LEFT) Checkbutton(self.tmpFr3, text="Kompletovat", variable=self.complete, onvalue=True, offvalue=False).pack(side=TOP, anchor=W) self.pdialog.grab_set() root.wait_window(self.pdialog)