• 8554阅读
  • 1回复

Qt中的QComboBox部件调用setEditText()时自动增加item项的问题 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2011-06-12
关键词: 问题QComboBox
默认的如果设置QComboBox部件的editable属性为true的话,在调用setEditText()时它会自动给增加一个item项,而这可能并不是作者想要的,这时可以通过setMaxCount(comboBox->count())来进行限制,这样的话调用setEditText()时就不会自动增加item项了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线xhxui

只看该作者 1楼 发表于: 2011-07-06
大哥,小弟刚好遇到一个相关问题,请帮帮忙呀。

目的:实现model的QComboBox编辑功能,并写入数据库。

描述:我的QComboBox的Items来自于简单代码的QSqlQueryModel。代码如下:

//...
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT `work_list` FROM work");
comboBox->setModel(model);
comboBox->setCurrentIndex(-1);
//...

//好吧,这测试通过。但突然想编辑item了。
comboBox->setEditable(1);
connect(comboBox,SIGNAL(editTextChanged(QString)),comboBox,SLOT(setEditText(QString)));

//这下糗了-_-! 无用,于是注释掉上面两行,用lineEdit组件完全代替编辑功能。
QLineEdit *edit = new QLineEdit;
comboBox->setLineEdit(edit);

//还是无用啊。
//写数据库我都可以用笨办法搞定,关键的问题是我 读不到编辑上去的内容。一回车就消失掉了。
//这两种办法在非model时都工作得很好的。
//是不是应该从model着手呢,或者用其它的替代方案?

谢谢!
快速回复
限100 字节
 
上一个 下一个