QT - 如何从 QTableView 中获取单行的数值

4

我有一个包含几条记录的 QTableView,每一行都包含四个列。 我需要获得这4个索引值(名字、姓氏、年龄、用户名),以便在 SQLite 中删除它们,因此我需要这四个值来放入删除查询中。我希望单击行的任何索引,并返回所有4个值。 我该怎么做? 谢谢

2个回答

8
我看不出有问题。使用 QModelIndex,您可以获取与给定模型索引相关的任何数据。
void GuiClass::onTableCellClicked(const QModelIndex &index)
{
    int row = index.row();
    QString name = index.sibling(row, 0).data().toString();
    QString surname = index.sibling(row, 1).data().toString();
    int age = index.sibling(row, 2).data().toInt();
    QString username = index.sibling(row, 3).data().toString();
    ...
}

谢谢您的示例。 - adi
自Qt 5.11以来,siblingAtColumn可能更适合这个问题? - avernus

0

首先,您需要处理表视图上的点击事件。为此,您可以处理QAbstractItemView::clicked(const QModelIndex &index)信号,并将其连接到适当的槽。例如:

void GuiClass::onTableCellClicked(const QModelIndex &index)
{
    QString cellText = index.data().toString();
    [..]
}

我尝试过,但如果我单击一个单元格,QString cellText仅返回该单元格,我需要所有单元格在一个或几个字符串中更好。 - user1336326

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接