QTableView或QTreeView怎么获取右键的事件和index

chengshiding 2013-04-27 03:45:23
我直接connect了doubleClicked(QModelIndex)信号,实现了获得所双击的index的。
但是我想右键高亮选中的index。
网上看到信号itemPressed可以捕获击键信号,里面还包含了index,不过这个信号
属于QTableWidget和QTreeWidget的,QTableView和QTreeView貌似没有。不过前者
是从后者继承而来的,难道要我重新实现?不会怎么重新实现啊。
求代码片段。

还有一个设置header颜色问题,就是我有条件的在headData里返回if(role == Qt::ForegroundRole)不同列的颜色,发现最后一列的颜色总是会应用的全部列,
不知道为什么会出现这么奇怪的问题。
谢谢!
...全文
1376 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ_278397935 2015-02-05
  • 打赏
  • 举报
回复
来个 大牛给讲解哈啊,。
QQ_278397935 2015-01-04
  • 打赏
  • 举报
回复
我是想这样关联上。还没做出来。
QQ_278397935 2014-12-29
  • 打赏
  • 举报
回复
qDebug()<<tree->currentIndex();
随波足流 2013-11-03
  • 打赏
  • 举报
回复
楼主connect了doubleClicked(QModelIndex)信号,实现了获得所双击的index,的代码能给我一份?qq邮箱549058387 新手
jdwx 2013-04-28
  • 打赏
  • 举报
回复
QModelIndex QAbstractItemView::currentIndex()
chengshiding 2013-04-28
  • 打赏
  • 举报
回复
引用 3 楼 jdwx1 的回复:
tableview->setContextMenuPolicy(Qt::CustomContextMenu); 写个槽和tableview的信号customContextMenuRequested(const QPoint & pos) connect 右键tableview,槽就会被调用。
我还得获取右键选中行的index呢,我使用了 QModelIndexList indexsSelected = current_table_view->selectedIndexes(); 来获取当前被选择的indexs,编译的时候报错了,说selectedIndexes()是被保护的。 但是QTableView : public QAbstractItemView在公有继承的,不知道为什么它的对象 不能访问呢
chengshiding 2013-04-28
  • 打赏
  • 举报
回复
编译时错误,qApp没有mouseButtons方法
jdwx 2013-04-28
  • 打赏
  • 举报
回复
tableview->setContextMenuPolicy(Qt::CustomContextMenu); 写个槽和tableview的信号customContextMenuRequested(const QPoint & pos) connect 右键tableview,槽就会被调用。
chengshiding 2013-04-28
  • 打赏
  • 举报
回复
引用 1 楼 heksn 的回复:
QAbstractItemView发出的信号 void clicked ( const QModelIndex & index ) void pressed ( const QModelIndex & index )
怎么获取鼠标按键事件呢,是不是有全局的鼠标按键事件呢,如果有的话, 我就可以判断出是否右键了。
chengshiding 2013-04-28
  • 打赏
  • 举报
回复
引用 6 楼 jdwx1 的回复:
QModelIndex QAbstractItemView::currentIndex()
使用下面语句解决了 QItemSelectionModel *selectionModel = current_table_view-->selectionModel(); QModelIndexList indexsSelected = selectionModel->selectedIndexes(); thanks!
  • 打赏
  • 举报
回复
QAbstractItemView发出的信号 void clicked ( const QModelIndex & index ) void pressed ( const QModelIndex & index )

16,820

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧