2024-04-25 15:06:09 发布
网友
假设我有一个任意大小的按钮部件
如果是,那是什么?你知道吗
基于here和this我得出了以下代码:
#! Python3 import tkinter as tk from tkinter.font import Font def resizeEvent(event, widget): #widget.unbind("<Configure>") #widget.grid_forget() widgetFont = Font(font=widget['font']) currentWidth = widget.winfo_width() currentHeight = widget.winfo_height() while ((widget.winfo_reqwidth() < currentWidth) and (widget.winfo_reqheight() < currentHeight)) and widgetFont['size'] > 1: widgetFont['size'] += 1 widget['font'] = widgetFont while ((widget.winfo_reqwidth() > currentWidth) or (widget.winfo_reqheight() > currentHeight)) and widgetFont['size'] > 1: widgetFont['size'] -= 1 widget['font'] = widgetFont widget['font'] = widgetFont #widget.bind("<Configure>", lambda event, widget = widget : resizeEvent(event, widget)) def reqWidth(font, widget): return font.measure(widget['text']) def reqHeight(font, widget): return font.metrics("linespace") def font_resizable(widget, isResizable=True): if isResizable: widget.bind("<Configure>", lambda event, widget = widget : resizeEvent(event, widget)) else: widget.unbind("<Configure>") if __name__ == "__main__": root = tk.Tk() frame = tk.Frame(root) frame.pack(fill="both", expand=True) frame.grid_rowconfigure(0, weight=1, uniform=True) frame.grid_rowconfigure(1, weight=1, uniform=True) frame.grid_columnconfigure(0, weight=1, uniform=True) button = tk.Entry(frame, text="A") button.grid(row=0, column=0, rowspan=1, sticky="nsew") button1 = tk.Button(frame, text="Dans et üstümde!") button1.grid(row=1, column=0, rowspan=5, sticky="nsew") font_resizable(button) font_resizable(button1) root.mainloop()
它不完全是理想的,在一些例子中表现不好,但是我想张贴这一点作为参考,或至少开始一点。你知道吗
不,没有什么内在的。您可能可以让它工作,但tkinter的设计方式正好相反:您指定文本,小部件将自动调整大小以适应需要。你知道吗
基于here和this我得出了以下代码:
它不完全是理想的,在一些例子中表现不好,但是我想张贴这一点作为参考,或至少开始一点。你知道吗
不,没有什么内在的。您可能可以让它工作,但tkinter的设计方式正好相反:您指定文本,小部件将自动调整大小以适应需要。你知道吗
相关问题 更多 >
编程相关推荐