How to pass arguments to callback functions in PyQt

yasar picture yasar · Jan 11, 2012 · Viewed 16.4k times · Source

I have around 10 QAction (this number will vary in runtime) in a toolbar, which all will do same thing, but using different parameters. I am thinking to add parameter as an attribute to QAction object, and then, QAction's triggered signal will also send object's itself to the callback function, so that I could get required parameters for the function. I have actually 2 questions about this:

  • Can it be done?
  • Is there a better way of doing this?

Answer

reclosedev picture reclosedev · Jan 11, 2012

How to pass arguments to callback functions in PyQt

You can use functools.partial from standart Python library. Example with QAction:

some_action.triggered.connect(functools.partial(some_callback, param1, param2))