def initUI(self):
self.columnconfigure(5, weight=1)
self.rowconfigure(3, weight=1)
self.search_label = Label(self, text='Keyword:')
self.search_label.grid(row=0, column=0, padx=5)
self.keywords = StringVar()
self.search_bar = Entry(self, width=30,textvariable=self.keywords)
self.search_bar.grid(row=0, column=1)
self.search_button = Button(self, text="Search",
command=self.handler_search)
self.search_button.grid(row=0, column=3, padx=5)
self.pack(fill=BOTH)#, expand='yes')
#self.pack(fill=BOTH)
self.box = Text(self, state='disabled')
self.box.grid(row=1, column=0)
UI由三个子框架组成,文本编辑器为一个,侧面按钮形成在另一个内部,搜索在另一个内部。上面的代码段是搜索用户界面。
查看屏幕截图:http://i.imgur.com/Vip1t.png
我想放置一个文本框作为搜索框的一部分,搜索框位于搜索条目下。我希望它尽可能扩展底部区域。
我试图扩展,填充等,但它没有解决条目被拉伸的问题,并且我的文本框被切断了(我之前添加了滚动条,但它也被切断了)。 / p>
问题出在哪里?感谢。
答案 0 :(得分:1)
给自己一张方格纸并画出你的GUI。问题应该变得明显。
您将条目小部件放在第1列,第0列中的文本小部件。我不完全确定您要查找的效果,但您可以将文本小部件移动到第1列,或将其保留在第0列,让它跨越两列。
假设您希望文本小部件是标签条目按钮组合的整个宽度,并且您希望标签小部件只有它需要的大小,我将停止使用网格并开始使用pack for通过执行以下操作,GUI的这一部分:
这将为您提供一个自包含的megawidget,其具有适当的调整大小行为,您可以将其放置在主应用程序中的任何位置。
分段构建GUI,并自由使用内部框架来实现您正在努力的外观和行为,并使用适合每个部分的几何管理器。如果您需要在网格中对齐某些内容,请使用网格。如果您不需要真正的网格,但确实有独立的行或列,请使用pack。 pack擅长将行放置在行或列中。网格擅长在网格中排列。为工作选择合适的工具。