[英]Python Tkinter label not moving properly
label = tk.Label(frame, text=app.split('/')[-1:][0] + "\n", bg="#1c1c1c",
padx=5, pady=5, font=("Helvetica 12 bold"), fg="white")
label.grid(row=0, column=0)
這段代碼應該生成標簽(制作新標簽是用一個單獨的函數完成的)並且標簽應該從窗口的左上角開始從上到下。 我會使用label.pack()
但是label.pack()
只是讓它從中間頂部到底部。 這就是我使用label.grid(row=0, column=0)
。 但問題在於新標簽只是替換了先前存在的標簽。 有什么辦法可以在仍然使用label.pack()
同時修復移動標簽?
完整的功能是 def addApps():
for widget in frame.winfo_children():
widget.destroy()
filename = filedialog.askopenfilename(initialdir="/", title="Select File",
filetypes= (("executables", "*.exe"), ("All files", "*.*")))
filename.split('/')[-1:][0]
apps.append(filename)
print("{filename}, {apps}")
for app in apps:
label = tk.Label(frame, text=app.split('/')[-1:][0] + "\n", bg="#1c1c1c",
padx=5, pady=5, font=("Helvetica 12 bold"), fg="white")
label.grid(row=0, column=0)
正如布萊恩所說,你只是把標簽放在一起。 因為您不更改行或列坐標,所以標簽堆疊在彼此的頂部,最后放置的標簽是您將在頂部看到的標簽。 您需要更改grid()
的行以堆疊它們。
下面的示例使用grid()
和pack()
從上到下堆疊標簽,向左對齊
網格:
for label_row, app in enumerate(apps):
label = tk.Label(frame, text=app.split('/')[-1:][0] + "\n", bg="#1c1c1c",
padx=5, pady=5, font=("Helvetica 12 bold"), fg="white")
label.grid(row=label_row, column=0, sticky = tk.NW)
盒:
for app in apps:
label = tk.Label(frame, text=app.split('/')[-1:][0] + "\n", bg="#1c1c1c",
padx=5, pady=5, font=("Helvetica 12 bold"), fg="white")
label.pack(anchor = tk.NW)
我建議查看grid()
和pack()
方法的工作原理以及兩者可用的選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.