【问题标题】:How to scale label font size inside a 'Toplevel' Tkinter Window?如何在“顶级”Tkinter 窗口内缩放标签字体大小?
【发布时间】:2019-09-05 23:41:06
【问题描述】:

致力于在 tkinter 'Toplevel' 窗口中显示一些信息。我希望文本大小随着窗口大小的增加而增加。为此,我只是在顶级小部件中使用标签小部件。

我制作了一个在窗口调整大小事件期间触发的函数,并更新全局字体变量。

    def showResults(self):

        self.top = Toplevel(master = None, height=750,width=750, relief="sunken")
        self.top.title("Results")
        self.font = ("Times", 20, "bold")
        self.fontSize = IntVar()
        self.fontSize.set(20)
        self.resultX = Label(self.top, text="Name: X", font=("Times", self.fontSize.get(), "bold")).pack(side = "left", fill = "both", expand=True)
        self.top.bind('<Configure>', self.resize)
        print(self.fontSize.get())


    def resize(self, event):
        self.fontSize.set(self.top.winfo_height())

我希望 self.fontSize 在调用 resize 后更新,但是,它没有被更新。但是,如果我在 showResults 中移动该打印语句以调整大小,它会打印更新后的大小。它只是不刷新标签小部件。任何人都知道一种简单的方法来“刷新”标签小部件以显示正确的信息?谢谢!

【问题讨论】:

  • 你必须使用self.resultX.configure(font=(&lt;your new font&gt;)

标签: python tkinter resize toplevel python-3.7


【解决方案1】:

您可以通过定义 font.Font 对象并将其设置为您的 Label 小部件的字体来做到这一点:

from tkinter import *
from tkinter import font

class Body(Frame):
    def __init__(self,master=None,**kwargs):
        super().__init__(master,**kwargs)
        self.button = Button(self,text="Click",command=self.showResults)
        self.button.pack()

    def showResults(self):
        self.font = font.Font(self.master, family="Times", size=20, weight="bold")
        self.top = Toplevel(master=None, height=750, width=750, relief="sunken")
        self.top.title("Results")
        self.resultX = Label(self.top, text="Name: X", font=self.font)
        self.resultX.pack(side="left",fill="both",expand=True)
        self.update()
        self.top.bind('<Configure>', self.resize)

    def resize(self, event):
        self.font['size'] = self.top.winfo_height()

root = Tk()
Body(root).pack()

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2018-11-13
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多