Я хочу передать параметр выбранному слоту, как показано ниже:
connect(selectionModel, SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &, MyParameter)),
this, SLOT(OnSelection(const QItemSelection &, const QItemSelection &, MyParameter)));
Или, по крайней мере, как:
connect(selectionModel, SIGNAL(selectionChanged (MyParameter)),
this, SLOT(OnSelection(MyParameter)));
Я хочу использовать MyParameter
в SLOT
, Есть ли способ сделать это? Можно ли построить кастом selectionChanged()
Сигнал?
Вы можете унаследовать от вашего selectionModel
Класс и реализовать собственный сигнал с необходимыми параметрами. Затем создайте слот, который подключается к сигналу по умолчанию, и в котором можно собирать параметры и излучать ваш сигнал.
Как это:
MySelectionModel: public SelectionModel{
public:
MySelectionModel(){
connect(this,
SIGNAL(selectionChanged(const QItemSelection & , const QItemSelection & )),
this,
SLOT(myPrivateSlot(const QItemSelection & , const QItemSelection & )));
}
private slots:
void myPrivateSlot(const QItemSelection & selected, const QItemSelection & deselected){
//collect or calculate params you want
emit mySignal(selected, deselected, yourParams);
}
signals:
void mySignal(const QItemSelection & selected, const QItemSelection & deselected, MyParams params);
}
Это не рабочий код. Это просто объяснить, как вы можете это сделать.
Других решений пока нет …