Создаю кнопки-делегат в QTableView и отлавливаю сигналы нажатия от них:
C++ (Qt)
....
QWidget *ButtonDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &/* option */,
const QModelIndex & index ) const
{
QPushButton *editor = new QPushButton (parent);
connect(editor, SIGNAL(clicked()), this, SLOT(emitCommitData()));
}
....
void ButtonDelegate::emitCommitData()
{ QWidget *but = qobject_cast<QWidget *>(sender());
QTableView *tableview = qobject_cast<QTableView*>( but->parent()->parent() );
int k=tableview->currentIndex().row();
}
При
первом нажатии на одну из кнопку
k возвращает -1.
При последующих нажатиях на любых кнопках возвращется всё нормально.
И чём фишка?