Qt QDataWidgetMapper没有映射到小部件

时间:2012-08-24 21:49:35

标签: qt

我很难将模型映射到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列表中的项目。请帮忙告诉我我做错了什么!完全没有使用映射器工作(直接将模型提供给小部件),但也有一个学习方面,所以请不要建议不要使用映射器。

非常感谢您的时间和精力。谢谢。

1 个答案:

答案 0 :(得分:1)

无法使用QComboBox直接映射

QDataWidgetMapper。您需要为它使用单独的模型。查看Combo Widget Mapper示例,了解如何操作。

或者你只是想用模型驾驶一个组合框?这不是QDataWidgetMapper的用途。请使用QComboBox::setModel()