0
我想創建一個GUI應用程序(剛開始),但我遇到了問題。使用包時不顯示按鈕()
當我使用.pack()(我需要使用)按鈕沒有得到顯示,但如果我使用.grid(),它顯示。
這是代碼:
class TemperaturePlotApp(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent)
self.master.title("Max Temperature")
self.button = Button(self, text="Browse", command=self.load_file,
width=10, *args, **kwargs)
self.button.pack(side="left", fill="both", expand=True)
def load_file(self):
fname = askopenfilename(filetypes=(("Text File", "*.txt")))
if fname:
try:
print("""here it comes: self.settings["template"].set(fname)""")
except: # <- naked except is a bad idea
showerror("Open Source File", "Failed to read file\n'%s'" % fname)
return
def main():
root = tk.Tk()
app = TemperaturePlotApp(root)
root.geometry("800x400")
root.mainloop()
if __name__ == '__main__':
main()
如果我使用.grid(),它的工作原理:
self.master.rowconfigure(5, weight=1)
self.master.columnconfigure(5, weight=1)
self.grid(sticky=W+E+N+S)
self.button = Button(self, text="Browse", command=self.load_file, width=10)
self.button.grid(row=1, column=0, sticky=W)
我必須使用.pack(),而不是電網,因此,如果有人能請解釋我做錯了什麼,我將不勝感激。
感謝 科瑞
嘿,謝謝堆。非常感謝。問題是我不允許更改main()方法中或下面的代碼,因爲我正在爲大學做這個。他們也堅持我使用.pack而不是.grid。你知道有什麼辦法嗎?謝謝:) – Fishingfon
@Fishingfon然後你可以直接在構造器('__init__'方法)中打包你的小部件作爲最後的聲明。例如:'self.pack()'。 – nbro
太完美了!謝謝堆:) – Fishingfon