1

QDataWidgetMapper の初期化で奇妙な問題が発生しました。

このようにすると動作しますが、ウィジェット間の同期はありません:

dataMapper->setModel(model);
dataMapper->toFirst();
dataMapper->addMapping(ui.uiName, 0);

ドキュメントには、どの要素にも移動するように指示されていません (toFirst() を呼び出して実行します)。

ウィジェットにマップした後に最初の要素に移動しようとすると、インデックスが範囲外のエラーでクラッシュします。

dataMapper->setModel(model);
dataMapper->addMapping(ui.uiName, 0);
dataMapper->toFirst();

このようにバイパスすると、想定どおりに機能します。

dataMapper->setModel(model);
dataMapper->toFirst();
dataMapper->addMapping(ui.uiName, 0);
dataMapper->toFirst();

私の場合、なぜこれが必要なのか誰か教えてもらえますか? 私自身のモデルの実装にバグがあるのでしょうか、それともこのようにするのが一般的ですか? しかし、それが一般的である場合、ドキュメントや例で言及されていないのはなぜですか?

よろしく

4

0 に答える 0