Возможно, вы захотите заглянуть в класс QSignalMapper , поскольку он предоставляет средства для привязки параметров типа int, string или widget к объекту, который отправляет данный сигнал. Основным ограничением является то, что отображаемый сигнал / слот должен быть без параметров.
Пример C ++ из документации QT4.7 :
ButtonWidget::ButtonWidget(QStringList texts, QWidget *parent)
: QWidget(parent)
{
signalMapper = new QSignalMapper(this);
QGridLayout *gridLayout = new QGridLayout;
for (int i = 0; i < texts.size(); ++i) {
QPushButton *button = new QPushButton(texts[i]);
connect(button, SIGNAL(clicked()), signalMapper, SLOT(map()));
signalMapper->setMapping(button, texts[i]);
gridLayout->addWidget(button, i / 3, i % 3);
}
connect(signalMapper, SIGNAL(mapped(const QString &)),
this, SIGNAL(clicked(const QString &)));
setLayout(gridLayout);
}
Вы можете найти пример PyQT4 здесь , однако, когда у меня будет возможность, я попытаюсь добавить простой пример PyQT4.