【问题标题】:return number of selected row in QTableView返回 QTableView 中选定行的编号
【发布时间】:2012-08-09 20:30:16
【问题描述】:

我有以下代码:

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);

我希望你只需点击一个框,返回所选字段所在的行号。

知道怎么做吗?

【问题讨论】:

标签: qt qtableview qstandarditemmodel


【解决方案1】:

您所指的是SIGNALS and SLOTS。 QObjects 发出各种信号,您可以将这些信号连接到执行操作的函数。在您的情况下,您可能对QTableViewclicked 信号感兴趣(实际上由超类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();
}

【讨论】:

  • 我这样说:“Object::connect: No such signal QTableView::clicked(const QModelIndex &index)”
猜你喜欢
  • 2013-10-01
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 2014-04-29
  • 2018-02-02
  • 2011-08-21
  • 1970-01-01
相关资源
最近更新 更多