我需要从tkinter按钮调用的函数返回数据。
root= Tk()
def random():
num_1= random.randint(0,12)
num_2= random.randint(0,3)
return num_1,num_2
num_1= None
num_2= None
Play=ttk.Button(text="Play",command=random)
Play.grid(row=3,column=0)
root.mainloop()我不确定return actual将变量存储在哪里,因为当我打印num_1和num_2时,都会打印None而不是预期的随机数。任何意见都将不胜感激。
(我还有一个主循环等)
发布于 2018-12-17 00:55:57
如果你打算将num_1和num_2声明为全局变量,那么你应该在随机函数中声明它。
root= Tk()
def random():
global num_1, num_2
num_1= random.randint(0,12)
num_2= random.randint(0,3)
return num_1,num_2
num_1= None
num_2= None
Play=ttk.Button(text="Play",command=random)
Play.grid(row=3,column=0)
root.mainloop()发布于 2018-12-17 00:57:29
在此场景中,执行您希望函数在函数内执行的操作。
from tkinter import *
import random
root= Tk()
def random_():
num_1= random.randint(0,12)
num_2= random.randint(0,3)
# return num_1,num_2
print(num_1,num_2)
num_1= None
num_2= None
Play= Button(text="Play",command=random_)
Play.grid(row=3,column=0)
root.mainloop()返回
如果你这样做的话就会起作用
print(random_)发布于 2018-12-17 00:58:01
最好不要使用全局变量
from tkinter import *
import random
def random_(tmp_list):
tmp_list[0] = random.randint(0, 12)
tmp_list[1] = random.randint(0, 3)
root = Tk()
tmp_list = [None, None]
Play=Button(text='Play', command=lambda: random_(tmp_list))
Play.grid(row=3, column=0)
root.mainloop()
print(tmp_list[0], tmp_list[1])https://stackoverflow.com/questions/53804372
复制相似问题