首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Tkinter网格填充空白区域

Tkinter网格填充空白区域
EN

Stack Overflow用户
提问于 2018-08-23 03:13:00
回答 1查看 26.8K关注 0票数 11

在发帖之前,我确实搜索了很多例子,但仍然不能正确使用tkinter网格。

我想要的:

我的代码:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

b1 = ttk.Button(root, text='b1')
b1.grid(row=0, column=0, sticky=tk.W)

e1 = ttk.Entry(root)
e1.grid(row=0, column=1, sticky=tk.EW)

t = ttk.Treeview(root)
t.grid(row=1, column=0, sticky=tk.NSEW)

scroll = ttk.Scrollbar(root)
scroll.grid(row=1, column=1, sticky=tk.E+tk.NS)

scroll.configure(command=t.yview)
t.configure(yscrollcommand=scroll.set)

root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=1)
root.rowconfigure(1, weight=1)

root.mainloop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-23 03:20:19

快速而简单的解决方案是定义treeviewcolumnspan。这将告诉treeview在2列中展开,并允许输入字段位于您的按钮旁边。

在不相关的注释中,您可以将字符串用于您的sticky,这样您就不必执行tk.E+tk.NS之类的操作。相反,只需使用"nse"或您需要的任何方向。确保你是按照"nsew"的顺序来做的。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

b1 = ttk.Button(root, text='b1')
b1.grid(row=0, column=0, sticky="w")

e1 = ttk.Entry(root)
e1.grid(row=0, column=1, sticky="ew")

t = ttk.Treeview(root)
t.grid(row=1, column=0, columnspan=2, sticky="nsew") # columnspan=2 goes here.

scroll = ttk.Scrollbar(root)
scroll.grid(row=1, column=2, sticky="nse") # set this to column=2 so it sits in the correct spot.

scroll.configure(command=t.yview)
t.configure(yscrollcommand=scroll.set)

# root.columnconfigure(0, weight=1) Removing this line fixes the sizing issue with the entry field.
root.columnconfigure(1, weight=1)
root.rowconfigure(1, weight=1)

root.mainloop()

结果:

要解决您在评论中提到的问题,您可以删除root.columnconfigure(0, weight=1)以使条目正确扩展。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51973653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档