Example #1
0
def font_menu(master,root):
    import tkinter
    if not hasattr(tkinter,'font'):
        try:
            import tkinter.font
        except AttributeError:
            from tkinter import font as tkinterfont
            tkinter.__setattr__('font',tkinterfont)
    
    mainFont = tkinter.font.Font(root,font='TkDefaultFont')
    root.option_add("*Font", mainFont)
    
    def add_value(parent, Var, *List):
        for value in List:
            ft = tkinter.font.Font(family = 'Fixedsys',size = 10,weight = tkinter.font.NORMAL)
            if Var:
                ft.config(size = value)
            else:
                ft.config(family = value)
            parent.add_command(label=str(value),font=ft)
        return parent

    selectfont = tkinter.Menu(master,tearoff=0)
    selectsize = tkinter.Menu(master,tearoff=0)
    fontList = tkinter.font.families()
    sizeList = tuple(range(8,51,2))
    add_value(selectfont, 0, *fontList)
    add_value(selectsize, 1, *sizeList)
    menu = tkinter.Menu(master,tearoff=0)
    
    menu.add_cascade(label='字体预览', menu=selectfont)
    menu.add_cascade(label='字号预览', menu=selectsize)
    def popup(event):
        menu.post(event.x_root, event.y_root)
    master.bind("<Button-3>", popup)
Example #2
0
def font_btn(master,root):
    print("I'm new")
    import tkinter
    if not hasattr(tkinter,'font'):
        try:
            import tkinter.font
        except AttributeError:
            from tkinter import font as tkinterfont
            tkinter.__setattr__('font',tkinterfont)
            
    from my_constant import config
    frame = tkinter.Frame(master)
    mainFontDescr = tkinter.Button()["font"]
    mainFont = tkinter.font.Font(root,font=mainFontDescr,size=10)
    root.option_add("*Font", mainFont)
    fontList = tkinter.font.families()
    sizeList = tuple(range(8,51,2))
    entryVar = tkinter.StringVar(root)
    entryVar.set(mainFont.cget("family"))
    entryVar2 = tkinter.IntVar(root)
    entryVar2.set(mainFont.cget("size"))
    print(entryVar.get())
    def setMainFont(varName, *args):
        print("family",entryVar.get())
        mainFont.configure(family = root.globalgetvar(varName))
    entryVar.trace_variable("w", setMainFont)
    def setMainFontSize(varName, *args):
        print("size",entryVar2.get())
        mainFont.configure(size = root.globalgetvar(varName))
    entryVar2.trace_variable("w", setMainFontSize)
    tkinter.OptionMenu(frame, entryVar, *fontList).pack(side=tkinter.LEFT)
    tkinter.OptionMenu(frame, entryVar2, *sizeList).pack(side=tkinter.LEFT)
    return frame