Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

У меня есть 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Могут ли быть два одинаковых 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


19:49.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru