Информация об изменениях

Сообщение Re[4]: Аналог MFC-шной функции CDialog::OnInitDialog в Qt от 16.09.2022 12:25

Изменено 16.09.2022 12:32 AlexGin

Re[4]: Аналог MFC-шной функции CDialog::OnInitDialog в Qt
Здравствуйте, Нomunculus, Вы писали:

Н>Я не помню точно, но вроде после конструктора никаких компонент еще нет...


После вызова:
    setupUi(this);

компоненты в конструкторе — уже есть

приведенный выше отрывок:
    QMyDialog  myDialog;
    myDialog.Init(value1, value2, /* ... */ valuen); // n параметров у функции
    myDialog.setModal(true);
    myDialog.exec();


я бы переписал так:
    QMyDialog  myDialog(value1, value2, /* ... */ valuen); // n параметров у конструктора диалога
    myDialog.exec();


Функцию Init() — или убрать (если всё её хозяйство вызывается единожды) и все действия перенести в конструктор,
или же — сделать как член класса QyDialog и вызывать из конструктора.
Вызов setModal(true); — избыточен, его можно и нужно убирать —
т.к. вызов myDialog.exec(); — подразумевает модальность диалогового окна.
Re[4]: Аналог MFC-шной функции CDialog::OnInitDialog в Qt
Здравствуйте, Нomunculus, Вы писали:

Н>Я не помню точно, но вроде после конструктора никаких компонент еще нет...


После вызова:
    setupUi(this);

компоненты в конструкторе — уже есть

приведенный выше отрывок:
    QMyDialog  myDialog;
    myDialog.Init(value1, value2, /* ... */ valuen); // n параметров у функции
    myDialog.setModal(true);
    myDialog.exec();


я бы переписал так:
    QMyDialog  myDialog(value1, value2, /* ... */ valuen); // n параметров у конструктора диалога
    myDialog.exec();


Функцию Init() — или убрать (если всё её хозяйство вызывается единожды) и все действия перенести в конструктор,
или же — сделать как член класса QMyDialog и вызывать — из конструктора.

Вызов setModal(true); — избыточен, его можно и нужно убирать —
т.к. вызов myDialog.exec(); — подразумевает модальность диалогового окна.