1

我编写了这段代码,当按下按钮时,一个输入框出现在新行上,但我不知道如何让它在最后一个下方的新行上创建一个新条目。我的主要问题是如何在函数中增加 row_number 变量而不在每次调用函数时重新设置它,以及如何让函数在每次调用时为“new_entry”对象赋予一个新名称,以便它不会'不要覆盖自己。

def new_row():
    #Create widgets   
    new_entry = ttk.Entry(root, width=7)

    #Put widgets in grid
    new_entry.grid(column=0, row=2, sticky=(W, E))

root = Tk()
createRow_button = ttk.Button(root, text='New Row', command=new_row)
createRow_button.grid()

root.mainloop

这是我第一次在 Stack Overflow 上提出问题,如果我有任何问题,请见谅。

4

1 回答 1

2

使用一个类并将行数存储为类属性self.num_rows

import Tkinter as tk


class App(object):
    def new_row(self):
        # Create widgets
        new_entry = tk.Entry(root, width=7)

        # Put widgets in grid
        self.num_rows += 1
        new_entry.grid(column=0, row=self.num_rows, sticky='WE')

    def __init__(self):
        self.num_rows = 1
        createRow_button = tk.Button(
            root, text='New Row', command=self.new_row)
        createRow_button.grid()

root = tk.Tk()
app = App()
root.mainloop()
于 2013-01-18T11:30:10.527 回答