• 6828阅读
  • 5回复

QTreeWidget 和 QTableWidget 如何关联itemChanged 信号问题 [复制链接]

上一主题 下一主题
离线polokang
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-02
关键词: itemChanged
我左边是个QTreeWidget ,右边是个根据左边选中的某一个节点后,根据返回的 ID ,而显示的 QTableWidget 。
现在如果我想修改右边的 table 中的数据的时候,用的是 SIGNAL(itemChanged(QTableWidgetItem*) 信号来触发的。
现在的问题是: 我在左边选择其他节点的时候,也会触发itemChanged 信号。请问我该如何区分 table 中的数据修改到底是选中其他节点而触发的,还是确实修改了右边table 中的数据而触发的?
离线wxj120bw

只看该作者 1楼 发表于: 2011-09-02
回 楼主(polokang) 的帖子
虽然信号一样 但连接的槽不一样 就可以区分
离线polokang

只看该作者 2楼 发表于: 2011-09-03
回 1楼(wxj120bw) 的帖子
其实我的意思是:当左边的 tree 改变时,不触发itemChanged 信号;只有当 右边的 table 中的数据被用户修改后,才触发itemChanged 信号。
但是现在由于右边的 table中的数据是根据 选中 左边的 tree 中某一个 节点而得到的,所以当用户选中左边的另一个节点时,右边 table 中的数据也会变化。但其实这个变化并不是用户更改了真正的数据。所以每次都会进入我的 编辑函数,导致程序崩溃。
谢谢 wxj120bw  支持!
离线wxj120bw

只看该作者 3楼 发表于: 2011-09-03
回 2楼(polokang) 的帖子
既然逻辑这么清楚 为什么不自定义一个信号
离线polokang

只看该作者 4楼 发表于: 2011-09-21
问题换了个思考角度解决了
我在 table 上加了一个 edit/modify 按钮,用户提交数据的时候,需要点击按钮才能提交。
谢谢wxj120bw 的帮助。
离线起点0615

只看该作者 5楼 发表于: 2013-11-10
使用不同的槽即可实现
快速回复
限100 字节
 
上一个 下一个