【发布时间】:2018-05-08 13:36:55
【问题描述】:
我编写了一个包含标签、条目和树视图的自定义小部件。现在我想要那个自定义小部件来填充我想放置它的框架。我认为行配置是要去做的事情。所以我的代码如下所示:
import tkinter as tk
import tkinter.ttk as ttk
class CustomWidget(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
tk.Frame.rowconfigure(3, weight=1)
self.Search_Text_Label = tk.Label(self, text="Search:",font=("Century Gothic",12))
self.Search_Text_Label.grid(row=1,column=1, sticky='W', padx=10)
self.entry = tk.Entry(self, width=30)
self.entry.grid(row=1,column=2, sticky='W')
self.entry.bind('<Return>',search)
self.tree = ttk.Treeview(self)
self.tree.state = "disabled"
self.tree.grid(row=2,column=1,columnspan=2, rowspan=2, sticky='S', pady=0, padx=20)
但我收到此错误消息:
TypeError: grid_rowconfigure() 缺少 1 个必需的位置参数: '索引'
我需要改变什么?这真的是要走的路吗?
【问题讨论】:
-
让小部件配置其在其父级中的位置是糟糕的设计。它使代码难以更新,因为如果您更改父级中的某些内容,则必须更改执行此操作的所有其他类中的某些内容。创建自定义小部件实例的代码应负责将其放置在屏幕上。
标签: python user-interface tkinter widget