gpt4 book ai didi

python - Tkinter - 询问一个小部件的回调

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:03 25 4
gpt4 key购买 nike

我正在尝试对一些 Tkinter 代码进行单元测试。我希望我的测试断言我的小部件已正确设置其回调。是否可以获取绑定(bind) Tkinter 小部件的 Python 函数?

我希望能够写出这样的东西:

def f():
pass
b = ttk.Button(command=f)

assert b.command is f

最佳答案

最好在函数中放置一个print 命令,然后按下按钮看看会发生什么。如果您不希望代码执行,您可以将所有其他代码注释掉。

def func1():
doStuff()
print ("Function 1 has been called")

def func2():
#doStuff2()
print ("Function 2 has been called")

def func3():
print ("Function 3 has been called")

button = Button(root, text="Call funaction 2", command=func2) #Etc....

编辑:我不确定这是否是个好主意,但您可以尝试在将返回列表的按钮中使用 _tclCommands 变量。列表中有什么?老实说,我不完全确定,但请通过我的尝试来验证这一点:

>>> from tkinter import *
>>> root = Tk()
>>> def epic():
... print ("EPIC")
...
>>> b = Button(root, command=epic)
>>> b.grid()
>>> b._tclCommands
['28020208epic']
>>> epic
<function epic at 0x013D1468>
>>>

关于python - Tkinter - 询问一个小部件的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18686305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com