Это еще одна версия, как использовать, я думаю, что может быть легче понять для начинающих
Вам нужно определить сигнал и слоты в ваших классах.
Добавьте в заголовок вашего класса, например, сигналы для MainWindow, слоты для вычислений
public slots:
void something();
signals:
void something_happend();
Затем в любом месте, где вы хотите его использовать, в вашем примере в mainwindow.cpp , вам необходимо соединить сигнал и слот. Сделайте это с помощью QObject :: connect:
QObject::connect(who_emit,SIGNAL(what_signal),who_receive,SLOT(what_slot))
Пример:
mainwindow.h
signals:
void something_happend();
computations.h
public slots:
void something_happend();
mainwindow.cpp
Computations *c = new Computations(this);
QObject::connect(this,SIGNAL(something_happend()),c,SLOT(something()));
Если вы хотите передать некоторые аргументы, SIGNAL и SLOT, которые вы хотите подключить, должны иметь одинаковые типы аргументов:
public slots:
void something(int c);
signals:
void something_happend(int c);
QObject::connect(this,SIGNAL(something_happend(int)),c,SLOT(something(int)));