Allink  v0.1
main.cpp
00001 #include <qapplication.h>
00002 #include <qpushbutton.h>
00003 #include <qlcdnumber.h>
00004 #include <qfont.h>
00005 #include <qlayout.h>
00006 #include <qstatusbar.h>
00007 #include <qlabel.h>
00008 #include <qlineedit.h>
00009 #include <qspinbox.h>
00010 #include <qradiobutton.h>
00011 #include <qbuttongroup.h>
00012 #include <qcheckbox.h>
00013 #include <qslider.h>
00014 #include "ElementiGrafici.h"
00015 #include "VarElementiGrafici.h"
00016 
00017 class Finestra: public QWidget{
00018 public:
00019   Finestra(QWidget *parent=0,const char *name=0);
00020 };
00021 Finestra::Finestra(QWidget *parent,const char *name)
00022   :QWidget(parent,name){
00023   //         esci
00024   QPushButton *esci = new QPushButton("&Esci",this,"Esci");
00025   esci->setFont( QFont("Times",18,QFont::Bold) );
00026   connect(esci, SIGNAL(clicked()), qApp,SLOT(quit()) );
00027   //         Elementi Grafici
00028   ElementiGrafici *e1 = new ElementiGrafici(this,"ElementiGrafici");
00029   //         apri
00030   QPushButton *apri = new QPushButton("&Apri",this,"apri");
00031   connect(apri, SIGNAL(clicked() ), e1,SLOT(Apri()) );
00032   //         nome file
00033   QLineEdit *nomeFile = new QLineEdit(this,"nomeFile");
00034   connect(nomeFile,SIGNAL( textChanged(const QString &)),e1,SLOT( NomeFile(const QString &)) );
00035   connect(e1,SIGNAL( TestoCambiato(const QString &)),nomeFile,SLOT( setText(const QString &)) );
00036   //          segnali
00037   QPushButton *segnali = new QPushButton("&Segnale",this,"segnali");
00038   connect(segnali, SIGNAL(clicked() ), e1,SLOT(PuntiSegnale()) );
00039   //          distr
00040   QPushButton *distr = new QPushButton("&Distr",this,"distr");
00041   connect(distr, SIGNAL(clicked() ), e1,SLOT(PuntiDistribuzione()) );
00042   //          spettro
00043   QPushButton *spettro = new QPushButton("&Spettro",this,"Spettro");
00044   connect(spettro, SIGNAL(clicked() ), e1,SLOT(PuntiSpettro()) );
00045   //          radice
00046   QPushButton *radice = new QPushButton("&Radice",this,"Radice");
00047   connect(radice, SIGNAL(clicked() ), e1,SLOT(PuntiRadice()) );
00048   //           autocor
00049   QPushButton *autocor = new QPushButton("&ACcor",this,"autocor");
00050   connect(autocor, SIGNAL(clicked() ), e1,SLOT(PuntiAutocor()) );
00051   //           integrale
00052   QPushButton *integrale = new QPushButton("&Int",this,"integrale");
00053   connect(integrale, SIGNAL(clicked() ), e1,SLOT(PuntiIntegrale()) );
00054   //           interRett
00055   QPushButton *interRett = new QPushButton("&InRett",this,"interRett");
00056   connect(interRett, SIGNAL(clicked() ), e1,SLOT(PuntiInterRett()) );
00057   //           parabola
00058   QPushButton *parabola = new QPushButton("&Para",this,"parabola");
00059   connect(parabola, SIGNAL(clicked() ), e1,SLOT(PuntiParabola()) );
00060   //           mediaMobile
00061   QPushButton *mediaMobile = new QPushButton("&mMob",this,"mediaMobile");
00062   connect(mediaMobile, SIGNAL(clicked() ), e1,SLOT(PuntiMediaMob()) );
00063   //           correlaADue
00064   QPushButton *correlaADue = new QPushButton("&Cor2",this,"corrADue");
00065   connect(correlaADue, SIGNAL(clicked() ), e1,SLOT(PuntiCorrelaADue()) );
00066   //           salva
00067   QPushButton *salva = new QPushButton("&Salva",this,"autocor");
00068   connect(salva, SIGNAL(clicked() ), e1,SLOT(Salva()) );
00069   //         nomeSalva
00070   QLineEdit *nomeSalva = new QLineEdit(this,"nomeSalva");
00071   connect(nomeSalva,SIGNAL( textChanged(const QString &)),e1,SLOT( NomeSalva(const QString &)) );
00072   connect(e1,SIGNAL( SalvaCambiato(const QString &)),nomeSalva,SLOT( setText(const QString &)) );
00073   //           ridisegna
00074   QPushButton *ridisegna = new QPushButton("&R",this,"ridisegna");
00075   connect(ridisegna,SIGNAL(clicked() ),e1,SLOT(Ridisegna()) );
00076   //           sulSegnale
00077   QRadioButton *sulSegnale = new QRadioButton("Sul &segnale",this,"sulSegnale");
00078   //  sulSegnale->toggle();
00079   connect(sulSegnale,SIGNAL(toggled(bool) ),e1,SLOT(SulSegnale(bool)) );
00080   connect(e1,SIGNAL(SegnaleGrafico(bool) ),sulSegnale,SLOT(setChecked(bool)) );
00081   //           sulGrafico
00082   QRadioButton *sulGrafico = new QRadioButton("Sul &grafico",this,"sulGrafico");
00083   connect(sulGrafico,SIGNAL(toggled(bool) ),e1,SLOT(SulGrafico(bool)) );
00084   //           cosaElabora
00085   QButtonGroup *cosaElabora = new QButtonGroup("Elabora",this,"cosaElabora");
00086   cosaElabora->setRadioButtonExclusive( TRUE );
00087   cosaElabora->insert(sulSegnale,0);
00088   cosaElabora->insert(sulGrafico,1);
00089   cosaElabora->setButton(0);
00090   //           disegna linee
00091   QCheckBox *linee = new QCheckBox("&Linee",this,"linee");
00092   linee->toggle();
00093   connect(linee,SIGNAL(clicked() ),e1,SLOT(DisegnaLinee()) );
00094   //           disegna punti
00095   QCheckBox *punti = new QCheckBox("&Punti",this,"punti");
00096   connect(punti,SIGNAL(clicked() ),e1,SLOT(DisegnaPunti()) );
00097   //           disegna griglia
00098   QCheckBox *griglia = new QCheckBox("&Griglia",this,"griglia");
00099   connect(griglia,SIGNAL(clicked() ),e1,SLOT(DisegnaGriglia()) );
00100   //           LogLog
00101   QCheckBox *LogLog = new QCheckBox("&LogLog",this,"LogLog");
00102   connect(LogLog,SIGNAL(clicked() ),e1,SLOT(DisegnaLogLog()) );
00103   connect(e1,SIGNAL(LogLogCambiato(bool) ),LogLog,SLOT(setChecked(bool)) );
00104   //           cosaDisegna
00105   QButtonGroup *cosaDisegna = new QButtonGroup("Disegna",this,"cosaDisegna");
00106   cosaDisegna->insert(linee,-1);
00107   cosaDisegna->insert(punti,-1);
00108   cosaDisegna->insert(griglia,-1);
00109   cosaDisegna->insert(LogLog,-1);
00110   //           Barra
00111   QStatusBar *Barra = new QStatusBar(this,"Barra");
00112   connect(e1,SIGNAL(Stato(const QString &) ),Barra,SLOT( message(const QString &)) );
00113   //          Valori
00114   QSpinBox *Valori = new QSpinBox(2,100,20,this,"Valori");
00115   connect(Valori,SIGNAL(valueChanged(int)),e1,SLOT(ImpValori(int)) );
00116   connect(e1,SIGNAL(ValoriCambiati(int)),Valori,SLOT(setValue(int)) );
00117   QLabel *etValori = new QLabel(" ",this,"etValori");
00118   etValori->setAlignment( AlignCenter);
00119   etValori->setText("Valori");
00120   //          NMobile
00121   QSpinBox *NMobile = new QSpinBox(2,100,5,this,"NMobile");
00122   connect(NMobile,SIGNAL(valueChanged(int)),e1,SLOT(ImpNMobile(int)) );
00123   connect(e1,SIGNAL(NMobileCambiato(int)),NMobile,SLOT(setValue(int)) );
00124   QLabel *etNMobile = new QLabel(" ",this,"etNMobile");
00125   etNMobile->setAlignment( AlignCenter);
00126   etNMobile->setText("Media Mobile");
00127   //          NCorrela
00128   QSpinBox *NCorrela = new QSpinBox(2,100,2,this,"NCorrela");
00129   connect(NCorrela,SIGNAL(valueChanged(int)),e1,SLOT(ImpNCorrela(int)) );
00130   connect(e1,SIGNAL(NCorrelaCambiato(int)),NCorrela,SLOT(setValue(int)) );
00131   QLabel *etNCorrela = new QLabel(" ",this,"etNCorrela");
00132   etNCorrela->setAlignment( AlignCenter);
00133   etNCorrela->setText("Correla a due");
00134   //          NVisMin
00135   ImpostaValori *NVisMin = new ImpostaValori(this,"NVisMin");
00136   connect(NVisMin,SIGNAL(ValoreCambiato(int)),e1,SLOT(ImpNVisMin(int)) );
00137   connect(e1,SIGNAL(NVisMinCambiato(int)),NVisMin,SLOT(ImpNumero(int)) );
00138   connect(e1,SIGNAL(InterVisCambiato(int)),NVisMin,SLOT(ImpInter(int)) );
00139   //         NVisMass
00140   ImpostaValori *NVisMass = new ImpostaValori(this,"NVisMass");
00141   connect(NVisMass,SIGNAL(ValoreCambiato(int)),e1,SLOT(ImpNVisMass(int)) );
00142   connect(e1,SIGNAL(NVisMassCambiato(int)),NVisMass,SLOT(ImpNumero(int)) );
00143   connect(e1,SIGNAL(InterVisCambiato(int)),NVisMass,SLOT(ImpInter(int)) );
00144   //          NElMin
00145   ImpostaValori *NElMin = new ImpostaValori(this,"NElMin");
00146   connect(NElMin,SIGNAL(ValoreCambiato(int)),e1,SLOT(ImpNElMin(int)) );
00147   connect(e1,SIGNAL(NElMinCambiato(int)),NElMin,SLOT(ImpNumero(int)) );
00148   connect(e1,SIGNAL(InterVisCambiato(int,int)),NElMin,SLOT(ImpInter(int,int)) );
00149   //         NElMass
00150   ImpostaValori *NElMass = new ImpostaValori(this,"NElMass");
00151   connect(NElMass,SIGNAL(ValoreCambiato(int)),e1,SLOT(ImpNElMass(int)) );
00152   connect(e1,SIGNAL(NElMassCambiato(int)),NElMass,SLOT(ImpNumero(int)) );
00153   connect(e1,SIGNAL(InterVisCambiato(int,int)),NElMass,SLOT(ImpInter(int,int)) );
00154 
00155   QGridLayout *grid= new QGridLayout( this,4,2,10);
00156   grid->addWidget(esci,0,0);
00157   grid->addWidget(e1,1,1);
00158   grid->setColStretch(1,10);
00159   grid->setRowStretch(1,10);
00160 
00161   QVBoxLayout *ASinistra = new QVBoxLayout;
00162   grid->addLayout(ASinistra,1,0);
00163   grid->setRowSpacing(1,400);
00164   ASinistra->addWidget(Valori);
00165   ASinistra->addSpacing(-10);
00166   ASinistra->addWidget(etValori);
00167   ASinistra->addWidget(NMobile);
00168   ASinistra->addSpacing(-10);
00169   ASinistra->addWidget(etNMobile);
00170   ASinistra->addWidget(NCorrela);
00171   ASinistra->addSpacing(-10);
00172   ASinistra->addWidget(etNCorrela);
00173   ASinistra->addWidget(cosaElabora);
00174   ASinistra->addSpacing(5);
00175   ASinistra->addWidget(sulSegnale);
00176   ASinistra->addSpacing(-10);
00177   ASinistra->addWidget(sulGrafico);
00178   ASinistra->addWidget(apri);
00179   ASinistra->addSpacing(-10);
00180   ASinistra->addWidget(nomeFile);
00181   ASinistra->addWidget(salva);
00182   ASinistra->addSpacing(-10);
00183   ASinistra->addWidget(nomeSalva);
00184   ASinistra->addWidget(cosaDisegna);
00185   ASinistra->addSpacing(5);
00186   ASinistra->addWidget(linee);
00187   ASinistra->addSpacing(-10);
00188   ASinistra->addWidget(punti);
00189   ASinistra->addSpacing(-10);
00190   ASinistra->addWidget(griglia);
00191   ASinistra->addSpacing(-10);
00192   ASinistra->addWidget(LogLog);
00193   QVBoxLayout *ASinistraGiu = new QVBoxLayout;
00194   grid->addLayout(ASinistraGiu,3,0);
00195 
00196 
00197   QHBoxLayout *InAlto = new QHBoxLayout;
00198   grid->addLayout(InAlto,0,1);
00199   InAlto->addWidget(segnali);
00200   InAlto->addWidget(distr);
00201   InAlto->addWidget(spettro);
00202   InAlto->addWidget(radice);
00203   InAlto->addWidget(autocor);
00204   InAlto->addWidget(integrale);
00205   InAlto->addWidget(mediaMobile);
00206   InAlto->addWidget(correlaADue);
00207   InAlto->addWidget(interRett);
00208   InAlto->addWidget(parabola);
00209 
00210 //   QHBoxLayout *MenoInAlto = new QHBoxLayout;
00211 //   grid->addLayout(MenoInAlto,2,1);
00212 
00213   QHBoxLayout *InBasso = new QHBoxLayout;
00214   grid->addLayout(InBasso,2,1);
00215   InBasso->addWidget(NElMin);
00216   InBasso->addWidget(NElMass);
00217   InBasso->addWidget(ridisegna);
00218   InBasso->addWidget(NVisMin);
00219   InBasso->addWidget(NVisMass);
00220 
00221   QHBoxLayout *InBasso2 = new QHBoxLayout;
00222   grid->addLayout(InBasso2,3,1);
00223   InBasso2->addWidget(Barra);
00224 
00225 }
00226 int main(int argc,char **argv){
00227   QApplication::setColorSpec( QApplication::CustomColor );
00228   QApplication a(argc,argv);
00229   
00230   Finestra f;
00231   f.setGeometry(0,200,800,355);
00232   a.setMainWidget( &f );
00233   f.show();
00234   
00235   return a.exec();
00236 }