グローバル変数 "y"の値を変更するボタンのセットを取得しようとしています。私はPythonにはかなり新しいので、tkinterにはとても新しいです。ラムダを使用しようとしましたが、同様の質問の解決策は問題を解決していないようです。 StringVar
の値を変更するときは、set
メソッドを使用する必要がグローバル変数値を変更するボタンコマンドの引数python tkinter
import tkinter as tk
from tkinter import *
master=Tk()
def assignint(value):
global y
y = value
y= StringVar()
frame = Frame(master)
frame.grid(row=0, columnspan=4)
for i in range(2):
Grid.rowconfigure(master,i,weight=1)
for i in range(4):
Grid.columnconfigure(master,i,weight=1)
Button1 = Button(master,text='Fault1',command= lambda: assignint(0))
Button1.grid(row=1, column=0,sticky=N+S+E+W)
Button2 = Button(master,text='Fault2',command= lambda: assignint(1))
Button2.grid(row=1, column=1,sticky=N+S+E+W)
Button3 = Button(master,text='Fault3',command= lambda: assignint(2))
Button3.grid(row=1, column=2,sticky=N+S+E+W)
Button4= Button(master,text='Fault4',command= lambda: assignint(3))
Button4.grid(row=1, column=3,sticky=N+S+E+W)
if y.get()!='':
print('The value of y is:', y.get())
mainloop()
条件が真になるチャンスがある前に、print文のためのあなたの条件が実行されます。 – Nae
ifステートメントを削除しようとしましたが、問題は同じですが、yの値は空白のままです。 – Jkind9
'y'は空白です。値を変更する前に' print'が実行されています。あなたのGUIが表示される直前に実行されます。 – Nae