• 7245阅读
  • 4回复

求助:关于qcombobox的问题 [复制链接]

上一主题 下一主题
离线pkcs
 
只看楼主 倒序阅读 楼主  发表于: 2008-12-10
— 本帖被 XChinux 执行加亮操作(2009-01-06) —

一个对话框dlg上有个combobox,我又做了一个lineedit,希望用lineedit输入字符串来在combobox中查找我想要的项,结果现在有这么个问题,是可以查找到合适的项,但当我点dlg上的ok按钮时,combobox的值没有被传进去,就是---不是我查找到的那项,(不知道大家是否听明白了)就是说combobox中当前你看到的是你想要的那项,但点ok之后在程序中你收到的combobox值不是那个,除非你是用鼠标自己在combobox中选择一下,否则无效,虽然你能看见combobox当前显示的是你想要的那项
相关代码:
在用lineedit查找你想要的项的时候,找到匹配的后:
          pCtrl->setCurrentItem(i);//pCtrl 是qcombobox的指针
                    QApplication::postEvent(pCtrl, new QMouseEvent(QEvent::MouseButtonPress,pt, 1,Qt::LeftButton));// QPoint pt = pCtrl->pos()这句懂的吧 不说了
按钮ok 的槽函数中:
          done(QDialog::Accepted);

呵呵,我表达能力不够,再说遍--------就是=====除非用鼠标点combobox中的项目,才能将你想要的那项传入程序,用我上述的setCurrentItem  postEvent 之后,qcombobox中当前显示的已经是我想要的,可是ok之后还是不是那个,非得选出来了,还得用鼠标再点一次,这样才能传进去!有不明白的欢迎大家再问我 呵呵 msn: yangyu_caca@hotmail.com  大家多多帮忙啊
离线litao422
只看该作者 1楼 发表于: 2008-12-10
不是很熟悉,我在 ComboBox_myname 里设置下

ComboBox_myname->setAutoCompletion ( TRUE );

可以自动补全,这样好不?
离线pkcs
只看该作者 2楼 发表于: 2008-12-11
不明白你说的~~~~~
离线faytitan
只看该作者 3楼 发表于: 2008-12-11
用COMBOBOX的INDEX  来获取你要的值    不要用CURRENTTEXT  没有鼠标CLICK    combobox的CURRENTINDEX是不变的
离线孤※少
只看该作者 4楼 发表于: 2012-04-17
你在qcombobox里查找选项时,可以得到它的索引吧?然后可以用setcurrentIndex()设置combobox当前项为找到的项不是就可以了吗?
如果你找到了lineedit里的内容,设置一个布尔值,如果为真就setcurrentText()设置combobox当前值为lineedit的内容也可以实现的呀!
快速回复
限100 字节
 
上一个 下一个