Архитектура приложений QT C++

делаю авторизацию на qt c++, вот текущий код для создания окон с виджетами.

mainwindow.h

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void onLoginClicked();
    void onRegisterClicked();

private:
    QLineEdit *loginLineEdit;
    QLineEdit *passwordLineEdit;
    QPushButton *loginButton;
    QPushButton *registerButton;
    QLabel *statusLabel;
};

mainwindow.cpp

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    // Создаем центральный виджет и устанавливаем его
    QWidget *centralWidget = new QWidget(this);
    setCentralWidget(centralWidget);

    // Создаем виджеты формы
    QLabel *loginLabel = new QLabel("Username:", this);
    loginLineEdit = new QLineEdit(this);

    QLabel *passwordLabel = new QLabel("Password:", this);
    passwordLineEdit = new QLineEdit(this);
    passwordLineEdit->setEchoMode(QLineEdit::Password);

    loginButton = new QPushButton("Login", this);
    registerButton = new QPushButton("Register", this);
    statusLabel = new QLabel(this);


    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(loginLabel);
    layout->addWidget(loginLineEdit);
    layout->addWidget(passwordLabel);
    layout->addWidget(passwordLineEdit);
    layout->addWidget(loginButton);
    layout->addWidget(registerButton);
    layout->addWidget(statusLabel);

    // Устанавливаем компоновку для центрального виджета
    centralWidget->setLayout(layout);

    
    connect(loginButton, &QPushButton::clicked, this, &MainWindow::onLoginClicked);
    connect(registerButton, &QPushButton::clicked, this, &MainWindow::onRegisterClicked);
}

Насколько правильно создавать одни виджеты в хэдере, а другие в cpp файле? Возможно стоит тогда и текстовые label для полей ввода также определить в хэдере? Искал хорошие примеры создание qt приложений, но в книге Шлее все пишется в main.cpp


Ответы (0 шт):