1

ボタンが押されたときに 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 に答える