• 12865阅读
  • 6回复

单击鼠标如何获取表格行号 ? [复制链接]

上一主题 下一主题
离线fridayboy
 
只看楼主 倒序阅读 楼主  发表于: 2008-08-22
— 本帖被 XChinux 执行加亮操作(2008-08-25) —
像MFC中,视图表格CListCtrl可以在OnClick()函数下用POSITION position = pList ->GetFirstSelectedItemPosition();这是获得第一个选项的位置,然后GetNextSelectedItem(position )就可以获取下一行的位置。QT中,在视图表格QTABLEVIEW里,鼠标单击任意一行,如何获取所单击的行号rownum?(暂时考虑选项为单行的情况)等待中。。。。。。
离线icevi

只看该作者 1楼 发表于: 2008-08-22
信号void clicked ( const QModelIndex & index )
取index的row()
====================
www.bilive.com
BiForm BiReader BiChat
最爱QT和PYTHON
====================
只看该作者 2楼 发表于: 2008-08-23
我用过Qtablewidget,是从Qtableview继承的,应该方法差不多吧
好像是selecteditem这个函数,返回QList<*QTableWidget>,即返回被选中item的列表
大概这样 QList<*QTableWidget> list = selecteditem()
        list.row(),我记不清了,上面的是伪代码啊,大概这个意思
值得注意的是,Qtablewidget默认是item选中的,如果想以行选中,可以设置属性,也可以设置单选行或多选行等。
还有Qtablewidget多选时有个问题,就用鼠标拉选和用ctrl+鼠标多选两种不一样,所以list存储顺序也不一样,有的是按照行优先,有的是列优先,所以我每次从选中的list中读出来时是这样处理的:按照不同的列存储到不同的动态数组中,每个动态数组的下标号就是行号了,而且也把不同的列区分出来了

我想t应该有更好的方法,ableview好像更好用,应该是用mode吧,我没试过
离线fridayboy
只看该作者 3楼 发表于: 2008-08-26
多谢icevi 和 上帝的左手 !问题解决。
还有一个小问题需请教:
如何设置表格内容居中对齐??QTableView默认是向左对齐。
MFC中用LVCFMT_CENTER可以设置某列居中对齐,
QT中,好像有scollTo函数,但是第一个参数是QModelIndex,不好获取,因为我要设置第2列,第3列。。。,为居中对齐,保持第一列为向左对齐。

请兄弟们帮忙提示一下如何做,在线等。。。。。。
离线unforgiver

只看该作者 4楼 发表于: 2008-08-26
void ui_addSB::on_tableView_clicked(const QModelIndex &)//点击tableview里的设备 对应信息更新
{
  QString sname;
  QModelIndex index;
  QSqlQuery  query,query1;
  index=ui.tableView->currentIndex();
sname=tablemodel->record(index.row()).value(1).toString();//根据行得到字段信息
离线duduqq

只看该作者 5楼 发表于: 2008-08-26
可以设置文本为居中对齐吧
离线pangzi412
只看该作者 6楼 发表于: 2010-05-24
请问楼主是如何解决的?我刚刚学习qt,也遇到了这个问题。谢谢楼主了啊。
快速回复
限100 字节
 
上一个 下一个