вернуть номер выбранной строки в QTableView

У меня такой код:

model = new QStandardItemModel();
channel = new QTableView(this);
channel->setModel(model);

model->setData(model->index(d,0,QModelIndex()), 0 );
model->setData(model->index(d,1,QModelIndex()),Channel);
model->setData(model->index(d,2,QModelIndex()),Unit);
model->setData(model->index(d,3,QModelIndex()),dimension);
model->setData(model->index(d,4,QModelIndex()),code);
model->setData(model->index(d,5,QModelIndex()),description);

Я хочу, чтобы вы просто щелкнули по полю, вернули номер строки, где выбрано поле.

есть идеи как это сделать?


person jackajack    schedule 09.08.2012    source источник
comment
Попробуйте посмотреть на это, doc.qt.nokia.com/4.7-snapshot/qitemselectionmodel .html   -  person Matthew    schedule 10.08.2012
comment
Вы говорите о том, чтобы он отвечал на щелчок пользователя? Или возможность в любой момент вручную посмотреть, что выбрано?   -  person jdi    schedule 10.08.2012
comment
это щелчок пользователя. щелкнув, пользователь должен вернуть номер строки, выбранной таким образом   -  person jackajack    schedule 10.08.2012


Ответы (1)


То, что вы имеете в виду, называется СИГНАЛАМИ и СЛОТАМИ. QObjects излучают различные сигналы, которые вы можете подключить к функциям, выполняющим действия. В вашем случае вас, вероятно, заинтересует сигнал clicked от QTableView (Фактически предоставляется суперклассом QAbstractItemView)

connect(channel, SIGNAL(clicked(QModelIndex), 
           this, SLOT(handleTableClick()));

handleTableClick действительно можно назвать как угодно, и это будет публичный СЛОТ, который вы определили для обработки этого сигнала:

public slots:
    void handleTableClick(const QModelIndex &);

Когда пользователь нажимает на допустимую ячейку, ваш слот будет вызван, и вам будет передан QModelIndex. Оттуда вы можете посмотреть строку вверх.

void Foo::handleTableClick(const QModelIndex &idx) {
    int row = idx.row();
}
person jdi    schedule 09.08.2012
comment
Я говорю это: Object :: connect: нет такого сигнала QTableView :: clicked (const QModelIndex & index) - person jackajack; 10.08.2012