支持 NULL 的 QComboBox
我使用 QComboBox 从单位表中选择单位(对象的任意属性)。问题是我的数据模型中的对象可以没有单位(表中为 NULL),在这种情况下 QComboBox 显示值发生在列表顶部。不可能选择“无”。
您建议添加 NULL 支持什么?我有几个版本:
- 在名为“--”或“N/A”的单位表中插入特殊记录。不完全是 NULL - 将有自己的 id。
- 在
QComboBox
中设置项目并手动更新模型。可能但乏味 - 再见单位列表的自动更新。
还有什么是可能的 - 子类化 QComboBox
(覆盖什么)?我没有看到任何类似于 setEditorData
/setModelData
的内容,例如 QAbstractItemDelegate
中的控制项。
I'm using QComboBox
to select unit (an arbitrary property of the object) from Units table. The problem is that object in my data model can have no unit (NULL in the table), in which case QComboBox
shows value happened on top of the list. Select 'none' is not possible.
What do you suggest to add NULL support? I have few versions:
- Insert special record in Units table named '--' or 'N/A'. Not exactly NULL - will have its own id.
- Set items in
QComboBox
and update model manually. Possible but tedious - goodbye automatic update of unit list.
What else is possible - subclassing QComboBox
(overriding what)? I don't see anything similar to setEditorData
/setModelData
like in QAbstractItemDelegate
to control items.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以对模型进行子类化,以便
data
将返回 NULL 的特殊值,然后setData
将检查该特殊值并替换 NULL。代码草图示例:
You can subclass the model, so that
data
will return a special value for NULL and thensetData
will check for the special value and substitute a NULL.Example sketch of code: