MainWindow изменяет размер экрана входа в систему после установки нового виджета - PullRequest
0 голосов
/ 10 апреля 2020

Итак, я сейчас пытаюсь настроить экран входа в систему, чтобы пользователь мог ввести имя пользователя и пароль, прежде чем они попадут в основную программу. Я также новичок в QT и все еще новичок в C ++. Я уже сделал экран входа в систему и просто временное главное окно, чтобы представить, что я добавлю туда. При настройке файла логина. cpp я добавляю виджет mainWindow. Затем, после того, как пользователь нажал на кнопку «Войти» и получил ее правильно, я устанавливаю текущий виджет на mainWindow, но он не изменяет размер до того, что у меня есть в Forms, он просто остается того же размера, что и форма входа, что является самым простым способом * 1004. * об исправлении, код ниже.

#include "login.h"
#include "ui_login.h"
#include<QMessageBox>

Login::Login(QWidget *parent) :
    QDialog(parent, Qt::FramelessWindowHint),
    login(new Ui::Login)
{
    login->setupUi(this);

    //Add the main window widget.
    login->stackedWidget->addWidget(&mainWindow);



    //Hides texts for incorrect login and EULA message
    login->incorrectLoginMessage->hide();
    login->acceptEULAMessage->hide();

    //Initializes the logo for the login window
    QPixmap pixLogo(":/content/Images/logo.png");
    int w = login->logoPic->width();
    int h = login->logoPic->height();
    login->logoPic->setPixmap(pixLogo.scaled(w,h,Qt::KeepAspectRatio));



}

Login::~Login()
{
    delete login;
}


//Checks if EULA box is checked on.
void Login::on_loginCheckBox_toggled(bool checked)
{
    if(checked == true)
    {
       isChecked = true;
    }
    else
        isChecked = false;
}

//For mouse movement position on click
void Login::mousePressEvent(QMouseEvent *event)
{
    mouseClick_X = event->x();
    mouseClick_Y = event->y();
}

//Moves window when user drags
void Login::mouseMoveEvent(QMouseEvent *event)
{
    move(event->globalX()-mouseClick_X, event->globalY()-mouseClick_Y);
}

//User preses login button
void Login::on_loginButton_clicked()
{
    //Reads what the user inputed for username and password fields.
    QString username = login->usernameEdit->text();
    QString password = login->passwordEdit->text();

    //EULA box is checked and username and password is correct, still need to find way to store real accounts to server.
    if(username == "username" && password == "password" && isChecked == true)
    {
        login->stackedWidget->setCurrentWidget(&mainWindow);

    }

    //EULA box not checked but username and password is correct.
    else if (username == "username" && password == "password" && isChecked == false)
        login->acceptEULAMessage->show();

    //Username or password is incorrect.
    else
        login->incorrectLoginMessage->show();
}

//When user clicks X button window closes
void Login::on_exitButton_clicked()
{
    this->close();
}

//When user clicks - button window minimizes
void Login::on_minimizeButton_clicked()
{
    this->showMinimized();
}


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