應用包()所以,我試圖讓使用Tkinter的首次蟒蛇一個GUI,但我有與Pack()
屬性的麻煩。Python的Tkinter的:如何在對象
我的GUI代碼迄今如下:
mainframe = tk.Tk()
mainframe.title("Hostname2IP")
mainframe.columnconfigure(1, weight=1)
mainframe.rowconfigure(1, weight=1)
SC= tk.scrolledtext.ScrolledText #shorten code a bit...
SC(master=mainframe, wrap=tk.WORD, width=5, height=15).grid(column=1, row=1, sticky=("NSEW"))
SC(master=mainframe, wrap=tk.WORD, width=5, height=15).grid(column=2, row=1, sticky=("NSEW"))
SC(master=mainframe, wrap=tk.WORD, width=5, height=15).grid(column=3, row=1, sticky=("NSEW"))
L1 = tk.Label(master=mainframe, text="Label1").grid(column=1, row=1, sticky="S")
L1 = tk.Label(master=mainframe, text="Label2").grid(column=2, row=1, sticky="S")
L1 = tk.Label(master=mainframe, text="Label3").grid(column=3, row=1, sticky="S")
tk.Button(master=mainframe, text="Open Targetslist", command=OpenTargetsButton).grid(column=1,row=3,sticky="W")
tk.Button(master=mainframe, text="Save Output", command=WriteOutButton).grid(column=2,row=3,sticky="E")
tk.Button(master=mainframe, text="Go", command=lambda: sequence(FilterList(file_path),\
GetIP_Mac(targethostlist),\
WriteOutput(Out_path))).\
grid(column=2, row=4, sticky="SE")
#bind key to a command
mainframe.bind('<Return>', lambda: sequence(FilterList(file_path),GetIP_Mac(targethostlist),WriteOutput(Out_path)))
mainframe.mainloop()
運行此顯示:
正如你所看到的,標籤是重疊......一切是不均勻和雜亂。
我現在的問題是,我不能將Pack()
應用於L1
,L2
,L3
或其他類似。
這樣:L1.Pack(side="bottom")
告訴我:「世界上沒有屬性‘包’」。當我試圖消除grid(...)
配置那裏,給了我另一個錯誤:
_tkinter.TclError: cannot use geometry manager pack inside . which already has slaves managed by grid
所以..我究竟錯在這裏做什麼?
編輯:正如在下面的答案和上一個錯誤中所說的,我不得不使用一個幾何管理器。我在(只)窗口容器上單獨使用了grid
,所以效果很好。其實很簡單。
L1 = tk.Label(master = mainframe,text =「Label1」)。grid(column = 1,row = 1,sticky =「S」)應該分成兩行...... –