如何将 QDataWidgetMapper 与 QLineEdit 一起使用
how to use QDataWidgetMapper with QLineEdit
我有一个包含三个字段的表单,我试图用 model.Below 中的值填充这些字段是我的头文件和 .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 在 form.I 上的其他两个文本字段中填充其他两个值 "def" 和 "ghi" 查看了 QDataWidgetMapper 可用的各种选项,但不是确定如何填充数据。它始终只填充一个值,而其他两个字段为空。如何从模型中读取所有三个值,或者我在这里做错了什么?我刚开始在我的 Qt 应用程序中使用模型。
您的模型是一列三行。如果要将列视为一个 "item",则必须使用 QDataWidgetMapper::setOrientation(Qt::Orientation)
指示 QDataWidgetMapper
的方向。默认是Qt::Horizontal
(一个"item"就是模型的一行),你要设置成Qt::Vertical
.
然后你像以前一样使用 addMapping
,每一行都是一个部分:
mapper->addMapping(ui->lineEdit_abc,0);
mapper->addMapping(ui->lineEdit_def,1);
mapper->addMapping(ui->lineEdit_ghi,2);
我有一个包含三个字段的表单,我试图用 model.Below 中的值填充这些字段是我的头文件和 .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 在 form.I 上的其他两个文本字段中填充其他两个值 "def" 和 "ghi" 查看了 QDataWidgetMapper 可用的各种选项,但不是确定如何填充数据。它始终只填充一个值,而其他两个字段为空。如何从模型中读取所有三个值,或者我在这里做错了什么?我刚开始在我的 Qt 应用程序中使用模型。
您的模型是一列三行。如果要将列视为一个 "item",则必须使用 QDataWidgetMapper::setOrientation(Qt::Orientation)
指示 QDataWidgetMapper
的方向。默认是Qt::Horizontal
(一个"item"就是模型的一行),你要设置成Qt::Vertical
.
然后你像以前一样使用 addMapping
,每一行都是一个部分:
mapper->addMapping(ui->lineEdit_abc,0);
mapper->addMapping(ui->lineEdit_def,1);
mapper->addMapping(ui->lineEdit_ghi,2);