在tkinter按钮中调用变量,该按钮也运行一个函数

时间:2018-08-04 02:01:59

标签: python function tkinter global-variables registry

Python的新手入门,所以要谨慎。根据一些注释进行了编辑以进行清理。我无法通过缩小此范围来发布工作版本,但我认为它很容易解决问题。

我有2个功能。 func1由用户活动设置。 Func 2有两个参数,一个是func1的输出,另一个是来自字典的。

如何在tkinter按钮命令部分中以任何方式(打印,返回等)访问结合了两个函数和字典的变量?

import tkinter as tk

# Just for this example, storing variables. Actual gathers file paths from user action
num1 = 2
num2 = 3
dict1 = [1, 2, 3]
#Global
sample1 = None

def func1_click():  # This updates sample1 value from user interaction
    global sample1
    sample1 = 1 * 2
    return sample1

def func2 (num1, num2):  # This is called last
    sample2 = num1 * num2
    return sample2

button1 = tk.Button(command=func1_click)
button1.pack()
button2 = tk.Button(command=lambda: print(var2))  
button2.pack()

var2 = func2(sample1, dict1)  # So get this, to ^^^
# Call var2 from button2, run funct2 with output from sample1, and dict1

root = tk.Tk()
root.mainloop()

1 个答案:

答案 0 :(得分:0)

我知道这不是最有效或最干净的方法,但是我能够通过创建一个由各种结果组成的组合列表来实现此目的。

然后我用tkinter button command =部分中使用的全局变量创建了一个新函数

def print_var3():
    global output1
    output =  output1
    print(output1)

button = tk.Button(root, command=print(output1))
button.pack()

root = tk.Tk()
root.mainloop()

现在,我不仅要打印,还需要确认Python返回了我想正确用于其他函数的结果。

也许有人仍然可以为此提供一些其他或更清洁的方法。