【发布时间】:2015-01-12 23:08:51
【问题描述】:
我有一个包含三个字段的表单,我正在尝试使用模型中的值填充这些字段。下面是我的头文件和 .cpp 文件中的代码:
myForm.h 中的声明
private:
Ui::MyForm *ui;
QStringListModel *model;
QDataWidgetMapper *mapper;
myForm.cpp 中的代码
model=new QStringListModel(this);
QStringList list;
list << "abc"<<"def"<<"ghi";
model->setStringList(list);
mapper=new QDataWidgetMapper();
mapper->setModel(model);
mapper->addMapping(ui->lineEdit_13,0);
mapper->toFirst();
当我运行应用程序时,文本字段会填充第一个值“abc”。我不确定如何使用 QDataWidgetMapper 在表单的其他两个文本字段中填充其他两个值“def”和“ghi”。我查看了 QDataWidgetMapper 可用的各种选项,但不确定如何填充数据。它始终只填充一个值,其他两个字段为空。如何从模型中读取所有三个值,或者我在这里做错了什么?我刚刚开始在我的 Qt 应用程序中使用模型。
【问题讨论】:
-
QDataWidgetMapper 将一行或一列映射到小部件。列表模型将每个项目作为一列中的一行。你到底想做什么?您希望小部件在
mapper->toNext()之后显示什么? -
@Leiaz 我有一个包含三个值的列表,这个列表附加到一个模型,如上所示。我希望所有三个值都显示在三个文本字段中。就像我希望第一个文本字段显示“abc”,下一个字段显示“def”和最后一个“ghi”。我怎样才能获得该功能?
标签: c++ qt qt4 qt-creator