繁体   English   中英

如何从 Tkinter 中的菜单 label 获取文本

[英]How to get text from menu label in Tkinter

最近我正在使用 tkinter 开发项目文本编辑器。 我试图制作字体菜单,但我遇到了一些问题。 字体菜单打印 Output

from tkinter import *
root= Tk()
def SetFontSize():
    Font[1] = font_size.entrycget(0,'label')
    content_text.config(font=Font)
    print(Font)

def SetFontFace():
    Font[0] = font_face.entrycget(0,'label')
    content_text.config(font=Font)
    print(Font)
menu_bar = Menu(root)
Font = ["Arial", 12]
font_sizes = [10,11,12,14,16,18,20]
font_faces = ["Arial", "Times New Roman", "Helvetica", "Courier", "Star Wars", "Comic Sans MS", "Bahnschrift"]
font_menu = Menu(menu_bar, tearoff=0)
menu_bar.add_cascade(label='Font', menu=font_menu)
font_size = Menu(menu_bar, tearoff=0)
font_face = Menu(menu_bar, tearoff=0)
font_menu.add_cascade(label='Font Size', compound='left', menu=font_size)
font_menu.add_cascade(label='Font Face', compound='left', menu=font_face)
font_menu.add_command(label='Font Color', compound='left')
size_var = IntVar()
size_var.set(12)
face_var = StringVar()
face_var.set("Arial")
for k in sorted(font_sizes):
    font_size.add_radiobutton(label=k,compound='left',variable=size_var, command=SetFontSize)

for j in sorted(font_faces):
    font_face.add_radiobutton(label=j,compound='left',variable=face_var, command=SetFontFace)
content_text = Text(root, wrap='word',font=Font)
content_text.pack(expand='yes', fill='both')
root.mainloop()

但是,它总是只选择一种字体大小和字体,即["Arial", 10]。 谁能帮我解决这个问题。 提前致谢!!

我对功能进行了一些更改,现在它给出了预期的字体。

def SetFontSize():
    Font[1] = size_var.get()
    content_text.config(font=Font)
    print(Font)

def SetFontFace():
    Font[0] = face_var.get()
    content_text.config(font=Font)
    print(Font)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM