The short answer to your question is that you must declare your method signature to connect the slot using the slots method:
class MainGUI < Qt::MainWindow
Note that signatures passed to SIGNAL and SLOT do not contain variable names.
In addition, as you concluded in your comment, it’s easier (and more Ruby-esque) to completely abandon the concept of a “slot” and simply use the Ruby block to connect the signal to call any method you like (or put inline logic). Using the following syntax, you should not use the slots method to pre-declare your method or process code.
changed = SIGNAL('currentChanged(const QModelIndex &, const QModelIndex &)')
source share