QT学习——QTreeView获取选中单行数据和多行数据

个人感觉QTreeView有些地方的使用没有MFC的CListCtrl方便(比如在不响应单击信号的情况下,获取选中行的数据(单行和多行)),也许因为我是新手吧。
一、获取单行选中的数据

QModelIndex selected = ui.treeView->currentIndex(); //选中的行
selected = selected.sibling(selected.row(),0); //0 就是第一列元素,1就是第二列元素,依此类推
QString strColumn0(ui.treeView->model()->itemData(selected).values()[0].toString()); //由你自己每一列的QVariant绑定的值,决定获取数据的方式

以上是获取单行选中的每一列数据的关键点,至于需要获取哪些列及如何保存获取的数据,就看你的需要了。

二、获取多行数据

//获取选中的行,默认获取选中行的第一列数据(0),列的索引值和上面一样0123......
QModelIndexList selected = ui.treeView->selectionModel()->selectedRows(1);

QList<QModelIndex>::const_iterator cit;
QModelIndex temp;
QString strSelect;

for (cit = selected.begin(); cit != selected.end(); ++cit)
{
    temp = *cit;
    strSelect = ui.treeView->model()->itemData(temp).values()[0].toString();
}

如果想要获取选中行的所有列数据,则可以使用
QModelIndexList selected = ui.treeView->selectionModel()->selectedIndexes();
注意,selected里面保存的数据,先是所有行的第一列输入,然后是所有行的第二列数据,依次类推。

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值