0

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リストの項目が入力されていません。助けて、私が間違っていることを教えてください!マッパーをまったく使用しないこと(モデルをウィジェットに直接提供すること)は問題なく機能しますが、これにも学習の側面があるため、マッパーを使用しないことを提案しないでください。

お手数をおかけしますが、よろしくお願いいたします。ありがとうございました。

4

1 に答える 1

1

QComboBoxで直接マッピングすることはできませんQDataWidgetMapper。それには別のモデルを使用する必要があります。その方法については、 Combo Widget Mapperの例をご覧ください。

それとも、モデルでコンボ ボックスを操作したいだけですか? それはそのQDataWidgetMapperためではありません。そのために使用QComboBox::setModel()します。

于 2012-08-24T23:00:51.470 に答える