【问题标题】:Problems with extra spaces between two labels tkinter-python 3.x两个标签之间有多余空格的问题 tkinter-python 3.x
【发布时间】:2018-03-18 07:22:06
【问题描述】:

我不知道为什么我在“日期”部分的标签之间有这些空格。我认为这是我有标签的框架大小的问题,但必须有一种方法来容纳更多卡住的东西。 我在出现问题的代码部分中添加了一条消息。

我认为我已经尝试了一切......这是我第一次使用 tkinter。提前感谢您的帮助

from tkinter import *


# ======================== Window
window = Tk()
window.title("School Management System")
window.geometry("1350x750+0+0")


# ===================== Frames
top_frame = Frame(window, width=1000,height=100, bd=15, relief='raise')
top_frame.pack(side=TOP)

frames_L = Frame(window,  bd=5, width=100, relief='raise')
frames_L.pack(side=LEFT, fill=Y)

frames_R = Frame(window, bd=5, relief='raise')
frames_R.pack(side=RIGHT, fill=Y)


# ================= Labels =========================================
tittle = Label(top_frame, text="Lucille Rupp's School Management System",
                  font=('times new roman', 30, 'bold'), justify='center', width=30).grid(row=0, column=0)
# NAME
name_input = StringVar()
label_name = Label(frames_L, text=' First Name:', font=('arial', 12, 'bold'), justify='center', width=10)
label_name.grid(row=1, sticky=W)
entry_name = Entry(frames_L, font=('arial', 12), justify='left', width=30, relief='sunken', textvariable=name_input)
entry_name.grid(row=1, column=1)

#LAST NAME
lastname_input = StringVar()
label_lastname = Label(frames_L, text=' Last Name:', font=('arial', 12, 'bold'), justify='center', width=10)
label_lastname.grid(row=2, sticky=W)
entry_lastname = Entry(frames_L, font=('arial', 12), justify='left', width=30, relief='sunken', textvariable=lastname_input)
entry_lastname.grid(row=2, column=1)



#DATE ===== HERE IS THE PROBLEM =========

label_date = Label(frames_L, text='Date:', font=('arial', 12, 'bold'), width=10, anchor='w')
label_date.grid(row=3, column=0)

entry_day = Entry(frames_L,  font=('arial', 12, 'bold'),  width=10)
entry_day.grid(row=3, column=1, sticky='w')

entry_month = Entry(frames_L,  font=('arial', 12, 'bold'),  width=10)
entry_month.grid(row=3, column=2)

window.mainloop()

【问题讨论】:

    标签: python python-3.x python-2.7 tkinter tk


    【解决方案1】:

    由于您想要适应两个日期并且您希望名字和姓氏以相同的 x 结尾,您应该将这些输入框设置为 2 列跨度,这将为您解决问题。

    from Tkinter import *
    
    
    # ======================== Window
    window = Tk()
    window.title("School Management System")
    window.geometry("1350x750+0+0")
    
    
    # ===================== Frames
    top_frame = Frame(window, width=1000,height=100, bd=15, relief='raise')
    top_frame.pack(side=TOP)
    
    frames_L = Frame(window,  bd=5, width=100, relief='raise')
    frames_L.pack(side=LEFT, fill=Y)
    
    frames_R = Frame(window, bd=5, relief='raise')
    frames_R.pack(side=RIGHT, fill=Y)
    
    
    # ================= Labels =========================================
    tittle = Label(top_frame, text="Lucille Rupp's School Management System",
                      font=('times new roman', 30, 'bold'), justify='center', width=30).grid(row=0, column=0)
    # NAME
    name_input = StringVar()
    label_name = Label(frames_L, text=' First Name:', font=('arial', 12, 'bold'), justify='center', width=10, anchor='w')
    label_name.grid(row=1, column=0, sticky=W)
    entry_name = Entry(frames_L, font=('arial', 12), justify='left', width=30, relief='sunken', textvariable=name_input)
    entry_name.grid(row=1, column=1, columnspan=2)## Added Column Span
    
    #LAST NAME
    lastname_input = StringVar()
    label_lastname = Label(frames_L, text=' Last Name:', font=('arial', 12, 'bold'), justify='center', width=10,anchor='w')
    label_lastname.grid(row=2,  column= 0 , sticky=W)
    entry_lastname = Entry(frames_L, font=('arial', 12), justify='left', width=30, relief='sunken', textvariable=lastname_input)
    entry_lastname.grid(row=2, column=1 ,columnspan = 2)## Added Column Span
    
    
    
    #DATE ===== HERE IS THE PROBLEM =========
    
    label_date = Label(frames_L, text=' Date:', font=('arial', 12, 'bold'), justify='center', width=10, anchor='w')
    label_date.grid(row=3, column=0, sticky=W)
    
    entry_day = Entry(frames_L,  font=('arial', 12, 'bold'),  width=10)
    entry_day.grid(row=3, column=1, sticky=W+E+N+S)
    
    entry_month = Entry(frames_L,  font=('arial', 12, 'bold'),  width=10)
    entry_month.grid(row=3, column=2, sticky=W+E+N+S)
    
    window.mainloop()
    

    生成的窗口如下所示 -

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 2016-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多