如何使用 QCombobox 模型
我想使用QCombobox
作为Java
中Swing
的Combobox
。所以我需要使用 Model
来保存我的对象。我如何将我的对象保存在 QCombobox 中。 (我认为我应该在模型中保存数据,因为 QCombobox
是根据 MVC 模式设计的......) 任何帮助将不胜感激。
I want to use QCombobox
as a the Combobox
of Swing
in Java
. So i need to use Model
for holding my object. How can i hold my object in QCombobox. (I think that I should hold data in Model because QCombobox
was designed according to MVC Pattern ... )
Any help will be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据您想要使用
QComboBox
显示的内容,您需要编写自己的模型,继承QAbstractListModel
,重新实现rowCount()
和数据()
。然后,使用 QComboBox::setModel() 使 QComboBox 显示它。
如果您只想显示字符串,可以使用
QStringListModel
,随 Qt 一起提供。Depending on what you want to display with your
QComboBox
, you'll need to write your own model, inheritingQAbstractListModel
, reimplementingrowCount()
anddata()
.Then, use
QComboBox::setModel()
to make theQComboBox
display it.If you just want to display strings, you can use a
QStringListModel
, provided with Qt.您可以使用
将模型添加到您的
函数。您可以使用预定义的模型,也可以通过继承QCombobox
setModelQAbstractItemModel
。您的模型将包含您的对象以将显示与数据分开。
You can add a model to your
QCombobox
by using thesetModel
function. You can use a predefined model or create your own by inheriting fromQAbstractItemModel
.Your model will contain your object to separate display from data.
Qt 使用 MVC 的简化版本,其中只有模型/视图部分。
如果不需要,您可以使用 QAbstractItemModel 提供的子类之一任何专门的行为,使用哪一种行为取决于您是将数据保存在文件系统中还是内存中的数据结构中。
您应该阅读模型/视图编程的整个部分在 Qt 文档中。
Qt uses a simplified version of MVC which only has the Model / View parts.
You can use one of the provided subclasses of QAbstractItemModel if you don't need any specialized behaviour, which one to use depends on whether you keep your data in a file system or a data structure in memory.
You should read up the whole section on model/view programming in the Qt documentation.