You can use a single slot and use QObject::sender() to determine which button the click came from.

What you will additionally need is a reverse mapping from button to the index you positioned it on.
One option is to store the return value of model()->index() in a QModelIndex variable, use that with setIndexWidget() and convert it to a QPersistantModelIndex which you store in a dynamic propery of the button object.

Cheers,
_