• 10596阅读
  • 4回复

QComboBox 可编辑时,信号activated()触发两次? [复制链接]

上一主题 下一主题
离线hanxing30
 

只看楼主 倒序阅读 楼主  发表于: 2009-06-02
部分代码
......
QComboBox *combo = new QComboBox(this);
combo->setEditable(true);
combo->setInsertPolicy(QComboBox::NoInsert);
......
connect(combo, SIGNAL(activated(int)), this, SLOT(testSlot(int)));// void testSlot(int index)为测试使用的自定义槽
......

操作:
当combo获得光标焦点,并下拉展开内部选项后,回车(注意:一定是回车,而非鼠标点击)选中某选项时,

问题:
信号activated() 为何被触发两次??
是我用得不对,还是QT的bug?

有解决办法吗?
离线yang_huafeng

只看该作者 1楼 发表于: 2009-06-02
那你改用信号currentIndexChanged ( int index )
QT使用中...
离线hanxing30

只看该作者 2楼 发表于: 2009-06-03
感谢楼上同学的回复.

我必须要使用 activated 信号. 怎么办? 无解了?

要是QT就是这么设计的,那我只能考虑变更我的设计了.
离线yang_huafeng

只看该作者 3楼 发表于: 2009-06-03
没测试过activated是不是响应了两次,如果怎是这样,你就自己写一个QComboBox控件,重写他的activated信号让它只响应一次就行了
QT使用中...
离线belleshi
只看该作者 4楼 发表于: 2009-08-20
嘿嘿,看到你提问说你必须要使用activated信号,那么认为你肯定知道它的作用拉?我为这个东东已经头疼了几天了,
请问下,  activated信号是qt本身的信号吧?因为我在我下载下来的代码中没有找到它的定义,如果是的话请问她是在什么情况被发射的?
网上搜到的结果都是当检测到对象活跃时就会发射,这个活跃该怎么理解呢?
先谢谢拉
快速回复
限100 字节
 
上一个 下一个