python-3.x Tkinter标签超出窗口

izkcnapc  于 2022-12-05  发布在  Python
关注(0)|答案(1)|浏览(370)

我试图看到不同的字体,以及它们在tkinter中的外观,但它们都在窗口之外。我看到了关于这个问题的其他答案,以及如何添加滚动条,但它们都不起作用。那么,有没有一种方法可以在我的应用程序或任何其他解决方案中添加滚动条,以便我可以查看所有字体。
谢谢
这是我的密码

from tkinter import Tk, font, Label
root = Tk()
x = font.families()
for i in x:
    l = Label(root, text=i, font=(i, 12))
    l.pack()
root.mainloop()

有人能帮忙吗

yzxexxkh

yzxexxkh1#

from tkinter import Tk, font, Label
root = Tk()
row=0
col=0
x = font.families()
for i in x:
    l = Label(text=i, font=(i, 10))
    l.grid(column=col,row=row)
    row+=1
    if row>23:
        row=0
        col+=1
root.mainloop()

Updated

You can add scroll Bar to the window('Its a bit complicated').

from tkinter import Tk, font, Label, Frame, Canvas, Scrollbar
root = Tk()

frame = Frame(root)
frame.pack(fill='both', expand=True)

rCanvas = Canvas(frame)

rCanvas.pack(side='left', fill='both', expand=True)

scrollBar = Scrollbar(frame,command=rCanvas.yview)
scrollBar.pack(side='right', fill='y')

rCanvas.configure(yscrollcommand=scrollBar.set)

sFrame = Frame(master=rCanvas)
sFrame.bind("<Configure>", lambda e: rCanvas.configure(scrollregion=rCanvas.bbox("all")))

rCanvas.create_window((0,0), window=sFrame,anchor="nw")

x = font.families()
for i in x:
    l = Label(sFrame, text=i, font=(i, 12))
    l.pack()
root.mainloop()

相关问题