Al *_*ath 1 tkinter python-3.x
使用下面的代码,列将扩展到最宽元素的宽度。如何限制宽度为 20 个字符?
def populate_using_tkinter(frame, project_list):
label_Name_column = Tkinter.Label(frame, text="Name", anchor="w", borderwidth=1 relief="solid")
label_Detail_column = Tkinter.Label(frame, text="Detail", borderwidth=1, relief="solid")
label_Name_column.grid(row=0, column=3, sticky=("W", "E"))
label_Detail_column.grid(row=0, column=4, sticky=("W", "E"))
Run Code Online (Sandbox Code Playgroud)
一般来说,grid几何管理器不允许您设置列的最大大小。它被设计为缩小或增长以完全适合其内容。
一种解决方案是对列使用框架,然后您可以配置框架以保持特定宽度。该解决方案的主要缺点是您不再拥有网格本身- 您拥有一系列列。如果列中的项目具有不同的高度,则很难让行对齐。
一个更简单的解决方案是确保所有小部件的首选宽度小于所需的列大小。然后,您可以设置列的大小并使小部件展开以填充。当您执行此操作时,它们只会扩展到列的大小,而不是最大大小。
这是一个包含两列的简单示例,其中第二列限制为 100 像素。它通过将minsize列的 和 a设置weight为零,然后创建一个小于 的标签小部件来实现此目的minsize。通过将小部件粘在列的两侧,它将增长到 100 像素宽。
import tkinter as tk
root = tk.Tk()
root.geometry("300x100")
# We want to constrain the column to 100 pixels, so we
# set a minsize and a weight of zero so that it will
# not grow any larger.
root.columnconfigure(1, minsize=100, weight=0)
# Add two labels. For the label in the second column we will
# force its size to be as small as possible. Later, we will
# configure it to grow to fill its column
label1 = tk.Label(root, text="This is a wide label", background="pink")
label2 = tk.Label(root, anchor="w", width=1, text="This is also a wide label", background="bisque")
# Add the labels, and configure them to fill their columns
label1.grid(row=0, column=0, sticky="nsew")
label2.grid(row=0, column=1, sticky="nsew")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2319 次 |
| 最近记录: |