решение проблемы закрфтия вложенных окон при П.С.

This commit is contained in:
2025-09-18 11:03:58 +03:00
parent 6aab774795
commit 9f4120c2d1
5 changed files with 70 additions and 1 deletions

View File

@@ -107,6 +107,9 @@ add_library(InstructorsAndTrainees SHARED
specialmessagebox.h
specialmessagebox.ui
trainees/dialogcardtrainee.cpp
trainees/dialogcardtrainee.h
resources.qrc
)

View File

@@ -0,0 +1,36 @@
#include "dialogcardtrainee.h"
DialogCardTrainee::DialogCardTrainee(ConnectorToServer* connectorToServer, MessangerController* messangerController,
int id_trainee, AMMtasksWidget* ammTasksWidget_common, FIMtasksWidget* fimTasksWidget_common,
QWidget *parent) :
QDialog(parent,
Qt::WindowSystemMenuHint
| Qt::WindowMaximizeButtonHint
| Qt::WindowMinimizeButtonHint
| Qt::WindowCloseButtonHint),
cardTrainee(nullptr)
{
cardTrainee = new PersonalCardTrainee(connectorToServer, messangerController,
id_trainee, ammTasksWidget_common, fimTasksWidget_common, this);
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(cardTrainee);
this->setWindowTitle(tr("Personal card trainee"));
this->setMinimumSize(1400, 700);
this->setWindowState(Qt::WindowMaximized);
/*this->setWindowFlags(Qt::WindowSystemMenuHint
| Qt::WindowMaximizeButtonHint
| Qt::WindowMinimizeButtonHint
| Qt::WindowCloseButtonHint);*/
this->setModal(true);
}
DialogCardTrainee::~DialogCardTrainee()
{
delete cardTrainee;
}
void DialogCardTrainee::closeEvent(QCloseEvent *event)
{
cardTrainee->close();
}

View File

@@ -0,0 +1,23 @@
#ifndef DIALOGCARDTRAINEE_H
#define DIALOGCARDTRAINEE_H
#include <QDialog>
#include <QObject>
#include "personalcardtrainee.h"
class DialogCardTrainee : public QDialog
{
Q_OBJECT
public:
DialogCardTrainee(ConnectorToServer* connectorToServer, MessangerController* messangerController,
int id_trainee, AMMtasksWidget* ammTasksWidget_common, FIMtasksWidget* fimTasksWidget_common,
QWidget *parent = nullptr);
~DialogCardTrainee();
void closeEvent(QCloseEvent *event) override;
private:
PersonalCardTrainee* cardTrainee;
};
#endif // DIALOGCARDTRAINEE_H

View File

@@ -1,6 +1,7 @@
#include "editortrainees.h"
#include "viewertrainees.h"
#include "personalcardtrainee.h"
#include "dialogcardtrainee.h"
#include "ui_viewertrainees.h"
ViewerTrainees::ViewerTrainees(ConnectorToServer* connectorToServer, MessangerController* messangerController, QWidget *parent) :
@@ -134,6 +135,7 @@ void ViewerTrainees::on_itemDoubleClicked(QTreeWidgetItem *item, int column)
int id_trainee = connectorToServer->getIdTraineeByLogin(login);
/*
PersonalCardTrainee* cardTrainee = new PersonalCardTrainee(connectorToServer, messangerController, id_trainee, ammTasksWidgetCommon, fimTasksWidgetCommon, this);
dlgCardTrainee = new QDialog(this,
@@ -149,6 +151,10 @@ void ViewerTrainees::on_itemDoubleClicked(QTreeWidgetItem *item, int column)
dlgCardTrainee->setWindowState(Qt::WindowMaximized);
dlgCardTrainee->setModal(true);
dlgCardTrainee->exec();
*/
dlgCardTrainee = new DialogCardTrainee(connectorToServer, messangerController, id_trainee, ammTasksWidgetCommon, fimTasksWidgetCommon, this);
dlgCardTrainee->exec();
ammTasksWidgetCommon->setParent(this);
fimTasksWidgetCommon->setParent(this);

View File

@@ -5,6 +5,7 @@
#include "ammtaskswidget.h"
#include "fimtaskswidget.h"
#include "messangercontroller.h"
#include "dialogcardtrainee.h"
namespace Ui {
class ViewerTrainees;
@@ -53,7 +54,7 @@ private:
MessangerController* messangerController;
QDialog* dlgEditor;
QDialog* dlgCardTrainee;
DialogCardTrainee* dlgCardTrainee;
private:
Ui::ViewerTrainees *ui;