Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2018, 15:53   #1
dimaSlon
Форумчанин
 
Регистрация: 24.06.2017
Сообщений: 160
По умолчанию Открывается два виджета одновременно

У меня есть 4 виджета : startWidget, mainWidget, student widget, teacherWidget.
В startWidget я выбираю который открыть student widget или teacherWidget и на заднем фоне у меня открыт mainWidget. Как сделать чтобы student widget, teacherWidget открывалися в mainWidget а не в другом окне?
Код:
#ifndef MAINWIDGET_H
#define MAINWIDGET_H

class StudentWidget;
class TeacherWidget;

class MainWidget : public QWidget
{
    Q_OBJECT

public:
    MainWidget(QWidget* parent = 0);
    ~MainWidget();
};

#endif // MAINWIDGET_H
Код:
#include "MainWidget.h"
#include "StudentWidget.h"
#include "TeacherWidget.h"

MainWidget::MainWidget(QWidget* parent)
    : QWidget(parent)
{
    setWindowTitle("Тесты");
    setWindowModality(Qt::WindowModal);
}

MainWidget::~MainWidget()
{
}
Код:
#include "StudentWidget.h"


StudentWidget::StudentWidget(QWidget* parent)
    : QWidget(parent)
{
    setWindowTitle("Студент");
    setWindowModality(Qt::WindowModal);
}

StudentWidget::~StudentWidget()
{
}
Код:
#include "TeacherWidget.h"


TeacherWidget::TeacherWidget(QWidget* parent)
    : QWidget(parent)
{
    setWindowTitle("Учитель");
    setWindowModality(Qt::WindowModal);
}

TeacherWidget::~TeacherWidget()
{
}
Код:
#include "StudyTests.h"
#include "MainWidget.h"
#include "StudentWidget.h"
#include "TeacherWidget.h"
#include "StartProgramMenuWidget.h"
#include "HelpWidget.h"

int StudyTests::runGame()
{
    mMainWidget = new MainWidget();
    mMainWidget->show();

    StartProgramMenuWidget startProgramMenu;

    connect(&startProgramMenu, SIGNAL(startProgramStudent()), this, SLOT(startProgramStudent()));
    connect(&startProgramMenu, SIGNAL(startProgramTeacher()), this, SLOT(startProgramTeacher()));
    connect(&startProgramMenu, SIGNAL(exitProgram()), this, SLOT(exitProgram()));
    connect(&startProgramMenu, SIGNAL(showHelp()), this, SLOT(showHelp()));
    startProgramMenu.exec();

    return 0;
}

void StudyTests::startProgramStudent()
{
    mStudentWidget = new StudentWidget();
    mStudentWidget->show();
    mMainWidget->close();

}
void StudyTests::startProgramTeacher()
{
    mTeacherWidget = new TeacherWidget();
    mTeacherWidget->show();
    mMainWidget->close();
}

void StudyTests::exitProgram()
{
    mMainWidget->close();
}

void StudyTests::showHelp()
{
   HelpWidget helpWidget;
   helpWidget.exec();
}

StudyTests::~StudyTests()
{
    delete mMainWidget;
    delete mStudentWidget;
    delete mTeacherWidget;
}
dimaSlon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Могут ли быть два одинаковых ip в сети одновременно? Ale}{ander Свободное общение 31 05.01.2014 21:44
Два потока и ZQuery (ZeosBdo) не работают одновременно fezilk25 Общие вопросы Delphi 0 15.01.2013 00:42
Не работают два скрипта одновременно veec JavaScript, Ajax 1 03.11.2011 22:41
Не работают одновременно два скрипта MrJenika JavaScript, Ajax 0 17.04.2010 12:35
Проиграть два wav-файла одновременно apromix Мультимедиа в Delphi 1 18.08.2009 18:04