我正在學習 tkinter,但在使用包和網格幾何管理器時遇到了麻煩。如圖所示,使用網格我無法將兩個按鈕與條目對齊。在這個方向上有什么指示嗎?
# Formulário cadastrar
style.configure("TFrame")
frm_principal = ttk.Frame(frm_save, style="TFrame")
frm_principal.pack()
lb_english = ttk.Label(frm_principal, text="English", width=15, anchor="e", padding=(10, 0))
lb_english.grid(row=0, column=0, pady=5)
entry_english = ttk.Entry(frm_principal)
entry_english.grid(row=0, column=1, pady=5)
lb_portuguese = ttk.Label(frm_principal, text="Portuguese", width=15, anchor="e", padding=(10, 0))
lb_portuguese.grid(row=1, column=0, pady=5)
entry_portuguese = ttk.Entry(frm_principal)
entry_portuguese.grid(row=1, column=1, pady=5)
frm2 = ttk.Frame(frm_save)
frm2.pack()
bt_save = ttk.Button(frm2, text="Save", command=cadastrar)
bt_save.grid(row=2, column=0, sticky="w", )
bt_cancelar = ttk.Button(frm2, text="Cancelar", command=limpar_entry)
bt_cancelar.grid(row=2, column=1, sticky="e")

uj5u.com熱心網友回復:
簡單的方法是創建frm2為的子級frm_principal并將其放在row=2and處column=1。
下面是修改后的代碼:
# Formulário cadastrar
style.configure("TFrame")
frm_principal = ttk.Frame(frm_save, style="TFrame")
frm_principal.pack()
lb_english = ttk.Label(frm_principal, text="English", width=15, anchor="e", padding=(10, 0))
lb_english.grid(row=0, column=0, pady=5)
entry_english = ttk.Entry(frm_principal)
entry_english.grid(row=0, column=1, pady=5, sticky="w") # added sticky="w"
lb_portuguese = ttk.Label(frm_principal, text="Portuguese", width=15, anchor="e", padding=(10, 0))
lb_portuguese.grid(row=1, column=0, pady=5)
entry_portuguese = ttk.Entry(frm_principal)
entry_portuguese.grid(row=1, column=1, pady=5, sticky="w") # added sticky="w"
frm2 = ttk.Frame(frm_principal) # use frm_principal as parent
frm2.grid(row=2, column=1) # use grid() instead of pack()
bt_save = ttk.Button(frm2, text="Save", command=cadastrar)
bt_save.grid(row=2, column=0, sticky="w")
bt_cancelar = ttk.Button(frm2, text="Cancelar", command=limpar_entry)
bt_cancelar.grid(row=2, column=1, sticky="e")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/505389.html
標籤:tkinter
