1

私は tkinter で GUI を作成し、パブリッシュ/サブスクライブ モジュール (pyPubSub) を使用して、サブスクライブされている場合に何が起こっているかをプログラムのさまざまな部分に通知しています。したがって、連携する必要がある 2 つの機能があります。tkinterから、私は使用しています:

after_idle(callback, *args)

メインループ内で送信するメッセージを呼び出します。ご覧のとおり、コールバックに送信する引数として *args のみを受け入れます。私が送信しているコールバックは pyPubSub からのものです:

sendMessage(topic, **kwargs)

だから、私はこれで終わります:

root.after_idle(pub.sendMessage, ?)

私の質問は、引数をkwargsで機能させるにはどうすればよいですか? コールバックで送信するには、位置引数を指定して after_idle を呼び出す必要がありますが、コールバックにはキーワード引数のみが必要です。

4

1 に答える 1

4

いつでも使用できます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()
于 2016-08-02T02:33:42.750 に答える