我读过这个问题的答案:
虽然它看起来相关,但它似乎并没有回答我的问题,因为上述问题中的问题在于调用用户定义的函数。我将一个被调用的方法(tkinter StringVar 的 .get() 方法)传递给内置的“print”函数。我的代码如下:
import tkinter as tk
from functools import partial
def print_called(variable):
print(variable.get())
try:
root = tk.Tk()
var = tk.StringVar()
options = tk.OptionMenu(root, var, 'string 1', 'string 2', 'string 3', 'string 4')
button_1 = tk.Button(root, text='button_1', command=partial(print_called, var))
button_2 = tk.Button(root, text='Button_2', command=partial(print, var.get()))
options.pack()
button_1.pack()
button_2.pack()
finally:
root.mainloop()
我运行上面的代码并从菜单中选择“字符串 1”。当我单击“button_1”时,它会按预期打印“字符串 1”。当我单击“button_2”时,它会打印一个空行。我的问题是:
为什么会出现这种情况?两者为何有差异?
如何将 var.get() 的结果(即字符串“string 1”)作为参数传递给函数?
慕村9548890
相关分类