我有以下代码:
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);
我希望您只需单击一个框,返回所选字段所在的行号。
知道怎么做吗?
答案 0 :(得分:0)
您所指的是SIGNALS and SLOTS。 QObjects发出各种信号,您可以将这些信号连接到执行操作的函数。在您的情况下,您可能对QTableView
的{{3}}信号感兴趣(实际上由超类QAbstractItemView提供)
connect(channel, SIGNAL(clicked(QModelIndex),
this, SLOT(handleTableClick()));
handleTableClick
可以真正命名为您想要的任何名称,并且是您已定义处理此信号的公共SLOT:
public slots:
void handleTableClick(const QModelIndex &);
当用户点击有效单元格时,您的插槽将被调用,您将被传递QModelIndex。从那里你可以查看这一行。
void Foo::handleTableClick(const QModelIndex &idx) {
int row = idx.row();
}