• 8528阅读
  • 2回复

[提问]QTreeWidget::itemChanged信号的副作用 [复制链接]

上一主题 下一主题
离线郭亮
 
只看楼主 正序阅读 楼主  发表于: 2011-11-03
本来打算用这个信号判断重命名完成,判断命名是否重复的。可是这个信号好多时候都会产生。如何区别发送这个信号是由于我的重命名操作完成,而不是其他?代码如下:
QTreeWidgetItem *top=new QTreeWidgetItem(this);
  top->setFlags(top->flags() | Qt::ItemIsEditable);    
  this->editItem(top, 0);
connect(this,SIGNAL(itemChanged( QTreeWidgetItem *,int )),this,SLOT(nameChanged(QTreeWidgetItem )));
在namechanged函数中,与数据中的数据进行比较,若重名则用QMessageBox提示,并继续编辑。单步执行代码发现:一次重命名,N次进入了nameChanged()函数,这说明信号itemchanged泛滥了
离线郭亮
只看该作者 2楼 发表于: 2011-11-03
谢谢,问题解决了,你的方法大大的好使
离线uidab

只看该作者 1楼 发表于: 2011-11-03
回 楼主(郭亮) 的帖子
disconnect一下。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
快速回复
限100 字节
 
上一个 下一个