1

私はTkinterを初めて使用し、ボタン1、ボタン2を押すと隣接するエントリボックスとともに表示されるグリッドマネージャーを使用してシンプルなGUIを構築しようとしています。次に button2 を押すと、入力ボックスと button2 が消えます。以下は GUI コードの一部です。ボタンは消えますが、入力ボックスは消えません。

import Tkinter
from Tkinter import *


master = Tk()


CreateTestButton = Button(master, text="Create Test", command = CreateTest, fg="red", bg="white",     font="Helvetica 10 bold")
CreateTestButton.grid(column=7, row=1)


def CreateTest():

   TestEntry = Entry(master, text="", width = 100).grid(row=4,columnspan=6)
   Label(self, text="Enter Test Name:").grid(row=3, column=0)

   SaveTestButton = Button(master, text="Save to database", command=saveTest, fg="green", bg="white",    font="Helvetica 10 bold")
   SaveTestButton.grid(row=4, column=5)

   def saveTest():
      SaveTestButton.grid_remove()    
      TestEntry.grid_remove() #ERROR 



mainloop()

Tkinterでグリッドマネージャーを使用してエントリボックスを削除するにはどうすればよいですか? また、ボタンのクリックまたはイベント時に、リスト ボックス、ラベル、およびウィジェットを削除する必要もあります。

よろしく、ダニエル

4

1 に答える 1

3

grid何も返さない; を実行することTestEntry = Entry(..).grid(...)で、TestEntryNoneがオブジェクトではなくなりEntryます。

次の行を置き換えます。

TestEntry = Entry(self, text="", width = 100).grid(row=4,columnspan=6)

と:

TestEntry = Entry(self, text="", width = 100)
TestEntry.grid(row=4,columnspan=6)

完全なコード

from Tkinter import *

def CreateTest():
    def saveTest():
        SaveTestButton.grid_remove()    
        TestEntry.grid_remove() #ERROR 
    TestEntry = Entry(master, text="", width = 100)
    TestEntry.grid(row=4,columnspan=6)
    Label(master, text="Enter Test Name:").grid(row=3, column=0)
    SaveTestButton = Button(master, text="Save to database", command=saveTest, fg="green", bg="white",    font="Helvetica 10 bold")
    SaveTestButton.grid(row=4, column=5)

master = Tk()
CreateTestButton = Button(master, text="Create Test", command = CreateTest, fg="red", bg="white",     font="Helvetica 10 bold")
CreateTestButton.grid(column=7, row=1)
mainloop()
于 2013-10-09T05:45:33.630 に答える