現在、PythonでTkinterライブラリを使用して経度と緯度のポイントを取り込んでファイルに出力するGUIを作成する方法を学習しています。基本的には、私はポイントのラインの正しいフォーマットを別のファイルにコピーしなければならないというプロセスを自動化しようとしています。Python Tkinter:forループを使用して作成されたウィジェットを削除します。
私はエントリーとボタンフィールドを作成して、「シェイプ」を生成するために必要なロング/ラットポイントの数を確認しました。ユーザーからのこの整数入力を使用して、forループで長い/緯度点を求める複数のウィジェットをGUIに入力します。私はそれが適切に機能しているが、今私は、これらのすべての長い/緯度の点をクリアし、他の形状が必要とするポイントの量をフィールドに再投入する能力を与える明確なボタンを持っているようにしようとしている。
は、これまでのところ、私が持っている:
def clearGrid():
coordAmount = int(pointText.get())
latLabel.grid_forget()
longLabel.grid_forget()
.....(contains code that populates the GUI)
#creating clear site Button
clearButton = Button(main_gui, text="Clear Sites!",command=clearGrid)
clearButton.grid(row=lastRow+1, column=5, pady=10)
をしかし、私はに実行しています問題はクリアボタンがクリックされたときに、それが唯一のウィジェットではないそれらのすべての最新のインスタンスをクリアしていることです。したがって、ウィジェットのインスタンス/反復を5回作成するforループでは、ウィジェットの5番目のインスタンス/反復のみが削除されます。
私はクリアボタン機能をこれらのウィジェットの5つのインスタンスすべてを削除できるようにしようとしています。だからここ
は、私はあなたが通常のリストを経由して、すべてのそれらのウィジェットへの参照を保持する必要があるウィジェット
def generatePoints():
for x in range(0,3):
degLong_label = Label(main_gui, text="Degree:", height=2)
degLong_label.grid(row=y,column=6,sticky=E)
degLong = Entry(main_gui, width=4)
degLong.grid(row=y,column=7,sticky=W)
#minute
minLong_Label = Label(main_gui,text="Minutes:", height=2)
minLong_Label.grid(row=y,column=8,sticky=W)
minLong = Entry(main_gui,width=3)
minLong.grid(row=y,column=8,sticky=E)
#seconds
secLong_Label= Label(main_gui,text="Sec:",height=2)
secLong_Label.grid(row=y,column=9,sticky=W,padx=20)
secLong = Entry(main_gui,width=3)
secLong.grid(row=y,column=9,sticky=E,padx=20)
#direction
dirLong_Label = Label(main_gui,text="Direction:",padx=5,height=2)
dirLong_Label.grid(row=y,column=12,sticky=W)
dirLong = Entry(main_gui,width=3)
dirLong.grid(row=y,column=13)
ああ!それでおしまい!ありがとう! – exAns