【问题标题】:Add labels to the top of a tkinter grid?将标签添加到 tkinter 网格的顶部?
【发布时间】:2020-05-13 13:54:38
【问题描述】:

这样做的目的是按下按钮并显示新行,但目前,标题显示在添加的每个新行上方。相反,我想在网格顶部有一行带有列标题。有没有办法修改我已经拥有的这段代码?稍后,我将把它合并到一个更大的 tkinter GUI 中。

from tkinter import *

#------------------------------------

def addbox():
    frame =Frame(root)
    frame.pack()

    #Item  
    Label(frame, text="Item").grid(row=0, column=0)

    ent1 = Entry(frame, width=10)
    ent1.grid(row=2, column=0)

    #Day
    Label(frame, text="Day").grid(row=0, column=1)
    ent2 = Entry(frame, width=10)
    ent2.grid(row=2, column=1)

    #Code
    ent3 = Entry(frame, width=10)
    ent3.grid(row=2, column=2)

    #Factor
    ent4 = Entry(frame, width=10)
    ent4.grid(row=2, column=3)

    all_entries.append( (ent1, ent2, ent3, ent4) )


    #Buttons. 
    showButton = Button(frame, text='Print', command=refresh)
    addboxButton = Button(frame, text='Add Item', fg="Red", command=addbox)



#------------------------------------

def refresh():

    for number, (ent1, ent2, ent3, ent4) in enumerate(all_entries):
        print (number, ent1.get(), ent2.get(), ent3.get(),ent4.get())

#------------------------------------

all_entries = []

root = Tk()

addboxButton = Button(root, text='Add Instrument', fg="Red", command=addbox)
addboxButton.pack()

root.mainloop()

【问题讨论】:

    标签: python tkinter grid


    【解决方案1】:

    您可以在添加标签之前检查行数:

    if len(all_entries) < 1: 
        Label(frame, text="Item").grid(row=0, column=0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 2015-01-16
      • 2012-09-12
      • 2015-09-16
      • 2021-07-24
      相关资源
      最近更新 更多