【发布时间】:2023-01-09 05:31:20
【问题描述】:
我试图让我的列表框移动到 gui 的底部,但无论我给它多高的行值,它都不会让步。您可以在我的代码中的 Creat_Gui 方法中看到我的列表框。我不确定为什么会这样,它不能是按钮,因为按钮在第 1 行,所以我不确定是什么原因造成的。
我尝试使用 sticky='s' 但没有用 我尝试多次更改行但没有用。我尝试使用 root.rowconfigure(100,weight=1) 这有点工作但是弄乱了令人讨厌的网格
import tkinter as tk
class Manager:
def __init__(self):
self.root=tk.Tk()
self.root.title('password_manager')
self.root.geometry('500x600')
self.create_GUI()
self.storage = {}
self.root.mainloop()
def create(self):
pass
def open_page(self):
print('openpage')
def add_new_button(self):
pass
def add_new(self):
self.app_title=tk.Label(text='test')
self.app_title.grid(row=2,column=50)
self.application_name=tk.Entry(self.root,width=20,font=('arial',18))
self.username=tk.Entry(self.root,width=20,font=('arial',18))
self.password=tk.Entry(self.root,width=20,font=('arial',18))
self.application_name.grid(row=2, column=1)
self.username.grid(row=3, column=2)
self.password.grid(row=4, column=3)
self.app_name_label = tk.Label(self.root, text='Application Name:')
self.username_label = tk.Label(self.root, text='Username:')
self.password_label = tk.Label(self.root, text='Password:')
self.app_name_label.grid(row=2, column=0)
self.username_label.grid(row=3, column=1)
self.password_label.grid(row=4, column=2)
self.password.bind('<Return>',self.hide)
def hide(self,thing):
#store user info to pass onto dictionary and hide textboxes
username=self.username.get()
password=self.password.get()
app_name=self.application_name.get()
self.application_name.grid_forget()
self.username.grid_forget()
self.password.grid_forget()
self.add_to_memory(username,password,app_name)
def add_to_memory(self,username,password,app_name):
#store username password and application name in dictionary
if app_name in self.storage.keys():
return
else:
self.storage[app_name]=(username,password)
print(self.storage)
def create_GUI(self):
#create initial interface
#self.root.columnconfigure(100, weight=1)
#self.root.rowconfigure(100, weight=1)
self.listbox=tk.Listbox(self.root,width=100)
self.listbox.grid(row=200,column=0)
self.button=tk.Button(self.root,text='add new',font=('arial',18),command=self.add_new)
self.button.grid(row=1,column=0)
Manager()
【问题讨论】:
-
您是否知道空行和空列的大小为零?
-
你这是什么意思@BryanOakley
-
这意味着如果第 2-199 行中没有任何内容,则将其放入第 200 行与将其放入第 2 行相同
-
好的,我明白你的意思了,但是为什么列表框没有出现在页面底部
-
因为您将窗口设置为 500x600 并且窗口中只有 2 个小部件。您要么需要扩展列表框高度,在列表框上方添加更多小部件,要么不使用网格。或设置行跨度。或者缩小窗口
标签: python python-3.x user-interface tkinter