kleine Warnung vor weg da es wohl einige nicht moegen: Die folgende Frage hat nur indirekt mit Qt zu tun und ist wohl mehr eine C++ Grundlagen Frage. Da ich aber einen Qt Source Code habe an dem ich zu der Frage gekommen bin stelle ich sie mal hier.
Ich habe ein stacked Widget auf jeder Seite werde verschiedene Berechnungen durch gefuehrt. Klappt alles prima, der Code sieht im Prinzip so aus:
Code: Alles auswählen
#include "testapp.h"
#include <QDebug>
using namespace std;
testapp::testapp(QMainWindow *parent) : QMainWindow(parent){
setupUi(this);
// setup connections
connect(actionQuit,SIGNAL (triggered()), this, SLOT(slotClose()));
connect(add,SIGNAL (clicked()), this, SLOT(calculate_add()));
connect(sub,SIGNAL (clicked()), this, SLOT(calculate_sub()));
connect(actionA,SIGNAL (triggered()), this, SLOT(page_add()));
connect(actionSub,SIGNAL (triggered()), this, SLOT(page_sub()));
}
testapp::~testapp(){
}
void testapp::page_sub(){
stackedWidget -> setCurrentIndex(1);
return;
}
void testapp::page_add(){
stackedWidget -> setCurrentIndex(0);
return;
}
void testapp::calculate_add(){
// add a and b and display in c
return;
}
void testapp::calculate_sub(){
// sub a and b and dispay in c
return;
}
void testapp::slotClose(){
close();
}
Bei dem Beispiel ist das noch alles recht uebersichtlich. Ich sehe jetzt im Prinzip drei "Klassen" von Funktionen:
1. Funktionen die nur auf Seite 0 gebraucht werden, z.B. calcualte_add()
2. Funktionen die nur auf Seite 1 gebraucht werden, z.B. calcualte_sub()
3. Funktionen die unabhaengig der aktuellen Seite sind, s.B. slotClose()
Um in Zukunft noch die Uebersicht zu haben wuerde ich diese drei "Klassen" gerne in eigene Source Files auslagern. Dachte mir das macht Sinn, macht es doch oder? Tja jetzt ist noch die Frage, wie? Ich vermute, dass ich da irgendwelche Klassen (diesmal im Sinne von C++) anlegen muss und jede Klasse bekommt ein eigenes Source File. Leider sind bei mir alle Versuche fehl geschlagen. Kann mir jemand auf die Spruenge helfen wie ich jetzt die Klasse auslagere und wie ich sie dann bekannt mache?
Ich glaube zwar obiger Sourcecode reicht, haenge aber mal alles als File an.
Danke,
J.