私はTkinterプログラムを作成しており、エントリーウィジェットの隣にラベルが表示されているルートを持っています。エントリーウィジェット情報へのアクセス:tkinter python
EX: 名 - > SEARCHTERM ENTRY BOX
私はエントリーwigetsから値のリストを作成しようとしています:
(EX [ ''、 'ユーザの入力'、 'ユーザー入力'])私はルートのエントリウィジェットを作成し、値を取得する機能を持っている:私はそれで別のPythonプログラムを実行するためにnew_search_termsと呼ばれるリストにアクセスできるようにしたい
def get_user_entries(user_entries):
new_search_terms = []
for entry in user_entries:
new_search_terms.append(entry.get())
return new_search_terms
を。
ボタンのコマンドとしてこの関数を使用しようとしました。私は別の場所でボタンをバインドしようとしました。私は別の場所でボタンを呼び出そうとしました。私はnew_search_termsがクラス変数だったクラスを作成しようとしましたが、上記の関数から返された情報にアクセスできないため、更新されたクラス変数は保持されませんでした。インターネットやいくつかの書籍を使い切った後、私はまだ情報が印刷されるのではなくボタン機能から返される例を見つけました。私は別の場所でこの情報にアクセスできる必要があります。
私が必要とする情報にアクセスする方法はありますか、これについてはTkinterで別の方法がありますか?私はボタンを作成
コードは:
def uc_1(original_names, final_names, root):
user_entries = []
for index in range(len(original_names)):
row = Frame(root)
info = Label(row, text = original_names[index]+'->'+final_names[index])
user_entry = Entry(row)
row.pack(side=TOP, fill=X)
user_entry.pack(side=RIGHT, expand=YES, fill=X)
user_entries.append(user_entry)
info.pack(side=LEFT)
return user_entries
ありがとう:
ここdone = Button(root, text='Done', command= lambda: get_user_entries(user_entries))
done.pack()
は、エントリやラベルを作成したコードです!
イベントバインディングに問題がある場合は、さらにソースコードを提供してください。 – phineas
ボタンを作成するコード。 'done =ボタン(ルート、テキスト='完了 '、コマンド=ラムダ:get_user_entries(user_entries))' が完了しました。パック() ここでは、エントリを作成したコードであり、 DEF uc_1(original_names、final_names、根)ラベル: \t user_entries = [] \tインデックスの範囲内(LEN(original_names)): \t \t行=フレームを(ルート) \t \t情報=ラベル(行、テキスト= original_names [インデックス] + ' - >' + final_names [インデックス]) \t \t user_entry =エントリ(行) \t \t row.pack(側面= TOP、フィル= X) \t \t user_entry.pack(side = RIGHT、expand = YES、fill = X) \t \t user_entries.append(user_entry) \t \t info.pack(側= LEFT) \t戻りuser_entries –
あなたの質問の編集ボタンを使用して、適切なコードのインデントを使用してください。 – phineas