# ========================================================= # change font # ========================================================= # a button cycles through a list of fonts # ========================================================= # --------------------------------------------------------- # --- import # --------------------------------------------------------- import sys if sys.version_info.major == 3: from tkinter import * from tkinter.font import * else: from Tkinter import * from tkFont import * # --------------------------------------------------------- # --- global variables # --------------------------------------------------------- buttonFont = ('arial', '20', 'bold') fontIndex = 0 fonts = [('Arial', '10', 'bold'), ('Arial', '15', 'bold'), ('courier', '12', 'roman'), ('Times', '12', 'roman'), ('Helvetica', '12', 'roman'),('Helvetica', '12', 'bold'), ('Helvetica', '12', 'italic'), ('Times', '12', 'bold italic')] labelText = \ 'abcdefghijklmnopqrstuvwxyxABCDEFGHIJKLMNOPQRSTUVWXYZ' # --------------------------------------------------------- # functions # --------------------------------------------------------- def chageFont(): global fontIndex fontIndex += 1 if fontIndex >= len(fonts): fontIndex = 0 l1.configure(font=fonts[fontIndex]) l2.configure(font=fonts[fontIndex], text=fontDescription(fonts[fontIndex])) def fontDescription(font): return '{}, {}, {}'.format(font[0],font[1],font[2]) def quit(): sys.exit() # --------------------------------------------------------- # main # --------------------------------------------------------- if __name__ == '__main__': # -- Tk root window root = Tk() root.title('Change Font') # -- a lable to chage fonts l1 = Label(root, font=fonts[fontIndex], padx=4, pady=4, text=labelText) l1.pack() l2 = Label(root, font=fonts[fontIndex], padx=4, pady=4, text=fontDescription(fonts[fontIndex])) l2.pack() # --- buttons fb = Frame(root) b1 = Button(fb, text='Change Font', font=buttonFont, command=chageFont) b2 = Button(fb, text='Quit', font=buttonFont, command=quit) b1.grid(row=0, column=0) b2.grid(row=0, column=1) fb.pack() root.mainloop()