Архитектура приложений 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