Я впервые использую Qt IDE, и у меня возникла проблема.
У меня есть два класса, которые связаны через интерфейс. Один является общим, а другой - IAAutenticacao. ContrGeral открывает главное окно. Как класс ContrGeral знает, что происходит внутри функции show, которую он выполнил, чтобы класс IAAutenticacao запускал другое окно (или обновлял его)?
Я придерживаюсь концепции интерфейса, поэтому я не могу просто поместить последовательность действий в класс MainWindow (созданный ContrGeral). Мне нужно, чтобы он как-то проинформировал Контроля о ситуации.
Поскольку функция show, открывающая окно, ничего не возвращает и не получает, я не знаю, что делать.
main.cpp
#include "windows.h"
#include "controladoras.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
CntrGeral tela_inicial;
tela_inicial.mostra();
return a.exec();
}
controladores.h
#ifndef CONTROLADORAS_H
#define CONTROLADORAS_H
#include "interfaces.h"
#include "dominios.h"
#include "windows.h"
#include <QApplication>
#include <stdexcept>
using namespace std;
class CntrGeral {
private:
IAAutenticacao *cntrIAAutenticacao;
IAUsuario *cntrIAUsuario;
IAEventos *cntrIAEventos;
MainWindow inicial;
public:
void setIAAutenticacao(IAAutenticacao *);
void setIAUsuario(IAUsuario *);
void setIAEventos(IAEventos *);
void mostra();
};
void inline CntrGeral::setIAAutenticacao(IAAutenticacao *cntrIAAutenticacao) {
this->cntrIAAutenticacao = cntrIAAutenticacao;
}
void inline CntrGeral::setIAEventos(IAEventos *cntrIAEventos) {
this->cntrIAEventos = cntrIAEventos;
}
void inline CntrGeral::setIAUsuario(IAUsuario *cntrIAUsuario) {
this->cntrIAUsuario = cntrIAUsuario;
}
void inline CntrGeral::mostra() {
inicial.show();
}
#endif // CONTROLADORAS_H
Проблема в inicial.show (), после его выполнения ничего не возвращается.
спасибо заранее.