Tkinter对齐网格位置



我用Tkinter创建了这个小GUI。但我想有我的按钮'StartDate'和按钮'…'和我的组合框对齐我的条目对象。我试着用pack()找到一个解决方案,但它不是很好。

你知道吗?

import tkinter as tk
from tkinter import ttk
from tkcalendar import Calendar
from tkinter.messagebox import *
from tkinter import filedialog
from tkinter import *
from ttkthemes import ThemedTk
#------------------------------------ Configuration Tkinter ------------------------#
#Conf General
app = tk.Tk() 
style = ttk.Style(app)
style.theme_use('clam')
app.geometry("320x260")
app.eval('tk::PlaceWindow . center')
app.attributes("-topmost", True)
app.configure(background='#f4f4f4')
#------------------------------------ Object Tkinter -------------------------------#
#Code Alto
selectalto = tk.Label(app,text = "Select Alto Code",bg='#f4f4f4')
selectalto.grid(column=0, row=0, ipadx=5, pady=5, sticky=tk.W+tk.N)
selectalto_entry = Entry(app)
selectalto_entry.grid(column=1, row=0, ipadx=5, pady=5, sticky=tk.W+tk.N)
#Code PTF
importCode = tk.Label(app,text = "Import Decalog Code",bg='#f4f4f4')
importCode.grid(column=0, row=1, ipadx=5, pady=5, sticky=tk.W+tk.N)
browsebutton = tk.Button(app,text='...', bd = 0)
browsebutton.grid(column=1, row=1, padx=10, pady=5, sticky=tk.N)
#Date
date_text = tk.Label(app,text = "Select Start Date",bg='#f4f4f4')
date_text.grid(column=0, row=2, ipadx=5, pady=5, sticky=tk.W+tk.N)
ttk.Button(app, text='Start Date').grid(column=1, row=2, padx=10, pady=5, sticky=tk.W+tk.N)
#Views
selectviews = tk.Label(app,text = "Select Views",bg='#f4f4f4')
selectviews.grid(column=0, row=3, ipadx=5, pady=5, sticky=tk.W+tk.N)
selectviews_entry = Entry(app, bd =1)
selectviews_entry.grid(column=1, row=3, ipadx=5, pady=5, sticky=tk.W+tk.N)
#Output
selectouput = tk.Label(app,text = "Format Output",bg='#f4f4f4')
selectouput.grid(column=0, row=4, ipadx=5, pady=5, sticky=tk.W+tk.N)
n = tk.StringVar() 
selectouput_value = ttk.Combobox(app, textvariable =n)
selectouput_value.grid(column=1, row=4, padx=5, pady=5, sticky="NW")
selectouput_value['values'] = ['.csv', '.xlsx', '.txt', '.json']
#BarProgress
style = ttk.Style()
style.theme_use('clam')
style.configure("blue.Horizontal.TProgressbar",foreground='#003c64', background='#003c64')
my_progress = ttk.Progressbar(app,orient="horizontal",length=300,mode="determinate", style="blue.Horizontal.TProgressbar")
my_progress.grid(columnspan = 2, row=6, padx=10, pady=5, sticky=tk.N)
my_progress['maximum'] = 100
#Extraction
ttk.Button(app, text='Extraction').grid(columnspan = 2, row=5, padx=10, pady=5, sticky=tk.N)

app.mainloop()

坦克你,

它们没有对齐,因为你给了它们不同的sticky、pad和ipad值。确保它们都得到相同值的一种方法是在单个字典中定义它,并让它们都使用该字典,如下所示:

layout = dict(ipadx=5,pady=5, sticky=tk.W)
#Code Alto
selectalto = tk.Label(app,text = "Select Alto Code",bg='#f4f4f4')
selectalto.grid(column=0, row=0, ipadx=5, pady=5, sticky=tk.W+tk.N)
selectalto_entry = Entry(app)
selectalto_entry.grid(column=1, row=0, **layout)
#Code PTF
importCode = tk.Label(app,text = "Import Decalog Code",bg='#f4f4f4')
importCode.grid(column=0, row=1, ipadx=5, pady=5, sticky=tk.W+tk.N)
browsebutton = tk.Button(app,text='...', bd = 0)
browsebutton.grid(column=1, row=1, **layout)
# etc .. 

最新更新