我很难将模型映射到Qt中的小部件。相关代码如下:
头文件声明:
Ui::Widget *ui;
QStringList list;
QStringListModel *model;
QDataWidgetMapper *mapper;
cpp文件实现(在构造函数中):
ui->setupUi(this); //only creates a QComboBox called comboBox
model = new QStringListModel(this);
mapper = new QDataWidgetMapper(this);
list << "Item 1" << "Item 2" << "Item 3";
model->setStringList(list);
mapper->setModel(model);
mapper->addMapping(ui->comboBox, 0);
mapper->toFirst();
由于某种原因,comboBox没有填充QStringList列表中的项目。请帮忙告诉我我做错了什么!完全没有使用映射器工作(直接将模型提供给小部件),但也有一个学习方面,所以请不要建议不要使用映射器。
非常感谢您的时间和精力。谢谢。
答案 0 :(得分:1)
QComboBox
直接映射 QDataWidgetMapper
。您需要为它使用单独的模型。查看Combo Widget Mapper示例,了解如何操作。
或者你只是想用模型驾驶一个组合框?这不是QDataWidgetMapper
的用途。请使用QComboBox::setModel()
。