変更可能な多くの (50 を超える) 異なる設定値を持つユーザー タブを表示する複雑なダイアログ ボックスを備えたポータブル アプリがあります。ユーザーは値を設定してから、[OK] または [キャンセル] を押すことができます。
ユーザーが [OK] を押した場合は、アプリが変更をモデルに保存するようにしますが、ユーザーが [キャンセル] を押した場合は、アプリが行った変更をすべて忘れるようにします。
ダイアログに値を出し入れするための最良の戦略は何ですか?
QDataWidgetMapper を使用してモデルをウィジェットに直接マップする方法は知っていますが、ユーザーが [キャンセル] をクリックすると問題が発生します。行ったすべての変更を元に戻す必要があります。一方、モデルとは別に値を格納するダイアログ固有のオブジェクトを作成する場合は、すべての値をモデルからオブジェクトにコピーし、ユーザーが [OK] を押した場合に再度コピーする必要があります。何か案は?