【发布时间】: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=(<your new font>)
标签: python tkinter resize toplevel python-3.7