Хорошая идея переписать ссылку в диалоге, чтобы обновить значения? - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть объект с некоторыми данными:

class MyObject
{
    public:
        Recipe(<Some Arguments>);
}

и диалоговое окно для редактирования значений этого объекта. Этот диалог получает ссылку на этот объект и визуализирует значения. Я использую ссылку, потому что я хочу хранить данные только один раз в памяти. Поэтому я передаю ссылку на свои данные каждому окну, в котором используются данные.

class MyDialog: public QDialog
{
    private:
        Ui::MyDialog* _mUi;

        MyObject _mNew;
        MyObject& _mOld;
};

MyDialog::MyDialog(MyObject& Old, QWidget* parent) : QDialog(parent),
                                                     _mUi(new Ui::MyDialog),
                                                     _mNew(Old)
                                                     _mOld(Old)
{
    _mUi->setupUi(this);

    // Visualize the values from "Old" in the GUI
}

В этом диалоговом окне также есть несколько слотов для заполнения объекта _mNew более новыми входными данными из GUI. Когда пользователь закончил редактирование, он может покинуть окно, нажав Save, что вызовет следующий код:

if(button == _mUi->buttonBox->button(QDialogButtonBox::Save))
{
    // Overwrite the old values
    _mOld = _mNew;
}

Значения обновляются, и все работает нормально.

Но я Я не уверен, что это хорошее решение. Рекомендуется ли передавать ссылку на пул данных (MyObject) в диалоговое окно, редактировать значения и перезаписывать ссылку новым адресом, или существует более эффективный подход для реализации какого-либо метода редактирования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...