我正在用tkinter编写一个gui,并使用一个发布/订阅模块(pyPubSub)来通知程序的不同部分,如果它们被订阅了,会发生什么。所以,我有两个需要协同工作的函数。在tkinter中,我使用:
after_idle(callback, *args)
调用call循环内的消息发送。如您所见,它只接受*args作为参数发送到回调。我发送的回调来自pyPubSub:
sendMessage(topic, **kwargs)
所以,我的结论是:
root.after_idle(pub.sendMessage, ?)
我的问题是,如何让args与kwargs协同工作?我必须使用位置参数调用after_idle才能与回调一起发送,但是回调只需要关键字参数。
发布于 2016-08-02 10:33:43
您可以始终使用lambda
,这里有一个不做任何事情的简短示例。
import tkinter as tk
def test(arg1, arg2):
print(arg1, arg2)
root = tk.Tk()
root.after_idle(lambda: test(arg1=1, arg2=2))
root.mainloop()
https://stackoverflow.com/questions/38710801
复制相似问题