I think you have to keep a reference to the new ProgramSettings() that you use to make the connections. You should have :
@
#ifndef MAINWINDOWS_H
#define MAINWINDOWS_H
#include <QObject>
#include <QWidget>
#include <QPushButton>
class MainWindows : public QWidget
{
Q_OBJECT
public:
explicit MainWindows(QWidget *parent = 0);
private:
QPushButton *ingrandimento;
QPushButton *rimpicciolimento;
ProgramSettings *programSettings;
signals:
private slots:
void updateAll(int newIngrandimento);
};
#endif // MAINWINDOWS_H
@
@
include "mainwindows.h"
#include "guida.h"
#include "programsettings.h"
#include <QVBoxLayout>
#include <QDebug>
MainWindows::MainWindows(QWidget *parent) :
QWidget(parent)
{
this->setWindowFlags(Qt::FramelessWindowHint);
QVBoxLayout *left = new QVBoxLayout(this);
ingrandimento = new QPushButton("Non vedo!!!");
QFont font("Calibri", 26);
font.setBold(true);
ingrandimento->setFont(font);
rimpicciolimento = new QPushButton("Porto gli\nocchiali,\nma ci\nvedo\nancora!!");
QFont font1("Calibri", 24);
font1.setBold(true);
rimpicciolimento->setFont(font1);
left->addWidget(ingrandimento);
left->addWidget(rimpicciolimento);
programSettings = new ProgramSettings;
QObject::connect(ingrandimento, SIGNAL(clicked()),programSettings , SLOT(addIngrandimento()));
QObject::connect(rimpicciolimento, SIGNAL(clicked()), programSettings, SLOT(reduceIngrandimento()));
QObject::connect(programSettings, SIGNAL(ingrandimentoChanged(int)), this, SLOT(updateAll(int)));
}
void MainWindows::updateAll(int newIngrandimento)
{
qDebug("updateAll");
ingrandimento->resize(newIngrandimento * 100 + 100, 100 * newIngrandimento + 100);
rimpicciolimento->resize(newIngrandimento * 100 + 100, 100 * newIngrandimento + 100);
qDebug()<<"newIngrandimento: " + newIngrandimento;
}
@