def __init__(self, pad): Tkinter.Toplevel.__init__(self) self.text = pad Font = tkFont.Font() self.text.config(font=Font) self.mainfont = Font self.title('Select Font And Size') self.now_get_font_options()
def now_get_font_options(self, event=None): #{'family': 'Arial', 'weight': 'normal', 'slant': 'roman', 'overstrike': 0, 'underline': 0, 'size': 10} self.mainfont.actual() # Variable self.var = Tkinter.StringVar() # For Font Face self.var.set(self.mainfont.actual('family')) self.var1 = Tkinter.IntVar() # for Font Size self.var1.set(self.mainfont.actual('size')) self.var2 = Tkinter.StringVar() # For Bold self.var2.set(self.mainfont.actual('weight')) self.var3 = Tkinter.StringVar() # For Italic self.var3.set(self.mainfont.actual('slant')) self.var4 = Tkinter.IntVar() # For Underline self.var4.set(self.mainfont.actual('underline')) self.var5 = Tkinter.IntVar() # For Overstrike self.var5.set(self.mainfont.actual('overstrike')) # Font Sample self.font_1 = tkFont.Font() for i in [ 'family', 'weight', 'slant', 'overstrike', 'underline', 'size' ]: self.font_1[i] = self.mainfont.actual(i) # Function def checkface(event): try: self.var.set(str(self.listbox.get( self.listbox.curselection()))) self.font_1.config(family=self.var.get(), size=self.var1.get(), weight=self.var2.get(), slant=self.var3.get(), underline=self.var4.get(), overstrike=self.var5.get()) except: pass def checksize(event): try: self.var1.set(int(self.size.get(self.size.curselection()))) self.font_1.config(family=self.var.get(), size=self.var1.get(), weight=self.var2.get(), slant=self.var3.get(), underline=self.var4.get(), overstrike=self.var5.get()) except: pass def applied(): self.result = (self.var.get(), self.var1.get(), self.var2.get(), self.var3.get(), self.var4.get(), self.var5.get()) self.mainfont['family'] = self.var.get() self.mainfont['size'] = self.var1.get() self.mainfont['weight'] = self.var2.get() self.mainfont['slant'] = self.var3.get() self.mainfont['underline'] = self.var4.get() #self.mainfont['overstrike']=self.var5.get() def out(): self.result = (self.var.get(), self.var1.get(), self.var2.get(), self.var3.get(), self.var4.get(), self.var5.get()) self.mainfont['family'] = self.var.get() self.mainfont['size'] = self.var1.get() self.mainfont['weight'] = self.var2.get() self.mainfont['slant'] = self.var3.get() self.mainfont['underline'] = self.var4.get() #self.mainfont['overstrike']=self.var5.get() self.destroy() def end(): self.result = None self.destroy() # Main window Frame self.mainwindow = ttk.Frame(self) self.mainwindow.pack(padx=10, pady=10) # Main LabelFrame self.mainframe = ttk.Frame(self.mainwindow) self.mainframe.pack(side='top', ipady=30, ipadx=30, expand='no', fill='both') self.mainframe0 = ttk.Frame(self.mainwindow) self.mainframe0.pack(side='top', expand='yes', fill='x', padx=10, pady=10) self.mainframe1 = ttk.Frame(self.mainwindow) self.mainframe1.pack(side='top', expand='no', fill='both') self.mainframe2 = ttk.Frame(self.mainwindow) self.mainframe2.pack(side='top', expand='yes', fill='x', padx=10, pady=10) # Frame in [ main frame] self.frame = ttk.LabelFrame(self.mainframe, text='Select Font') self.frame.pack(side='left', padx=10, pady=10, ipadx=20, ipady=20, expand='yes', fill='both') self.frame1 = ttk.LabelFrame(self.mainframe, text='Select Font size') self.frame1.pack(side='left', padx=10, pady=10, ipadx=20, ipady=20, expand='yes', fill='both') ttk.Entry(self.frame, textvariable=self.var).pack(side='top', padx=5, pady=5, expand='yes', fill='x') self.listbox = Tkinter.Listbox(self.frame, bg='gray70') self.listbox.pack(side='top', padx=5, pady=5, expand='yes', fill='both') for i in tkFont.families(): self.listbox.insert(Tkinter.END, i) # Frame in [ 0. mainframe] self.bold = ttk.Checkbutton(self.mainframe0, text='Bold', onvalue='bold', offvalue='normal', variable=self.var2) self.bold.pack(side='left', expand='yes', fill='x') self.italic = ttk.Checkbutton(self.mainframe0, text='Italic', onvalue='italic', offvalue='roman', variable=self.var3) self.italic.pack(side='left', expand='yes', fill='x') self.underline = ttk.Checkbutton(self.mainframe0, text='Underline', onvalue=1, offvalue=0, variable=self.var4) self.underline.pack(side='left', expand='yes', fill='x') #self.overstrike=ttk.Checkbutton(self.mainframe0, text='Overstrike',onvalue=1, offvalue=0, variable=self.var5) #self.overstrike.pack(side='left', expand='yes', fill='x') # Frame in [ 1. main frame] ttk.Entry(self.frame1, textvariable=self.var1).pack(side='top', padx=5, pady=5, expand='yes', fill='x') self.size = Tkinter.Listbox(self.frame1, bg='gray70') self.size.pack(side='top', padx=5, pady=5, expand='yes', fill='both') for i in range(101): self.size.insert(Tkinter.END, i) Tkinter.Label(self.mainframe1, bg='white', text=''' ABCDEabcde12345 ''', font=self.font_1).pack(expand='no', padx=10, pady=10) # Frame in [ 2. mainframe] ttk.Button(self.mainframe2, text=' OK ', command=out).pack(side='left', expand='yes', fill='x', padx=5, pady=5) ttk.Button(self.mainframe2, text=' Cancel ', command=end).pack(side='left', expand='yes', fill='x', padx=5, pady=5) ttk.Button(self.mainframe2, text=' Apply ', command=applied).pack(side='left', expand='yes', fill='x', padx=5, pady=5) self.listbox.bind('<<ListboxSelect>>', checkface) self.size.bind('<<ListboxSelect>>', checksize)