Ich glaube erstmal solltest Du Dir etwas klarer über Objekte/Klassen werden. Das hat nämmlich grundsätzlich nichts mit irgendwelchen *.cpp Dateien zu tun. Das man (vernünftigerweise) idR eine Klasse in einer .h/.cpp implementiert ist eher Konvention als Zwang.
Also wenn ich Dich richtig verstehe, möchtest Du aus Objekten anderer Klassen als Deiner MainWindow Klasse auf den Member "ui" von Deinem MainWindow Objekt zugreifen, richtig? Dann musst Du den Objekten der anderen Klassen einen Weg geben, um Dein MainWindow Objekt zu erhalten.
Da Du wahrscheinlich nur ein MainWindow hast, könntest Du dieses z.B. als Singleton (Stichwort in Google) implementieren. Dann wäre es von überall erreichbar. Singletons haben allerdings etliche Schwachstellen und Probleme (werden die Google Treffer, wenn sie gut sind, auch erwähnen).
Daher wäre die (meiner Meinung nach) zu bevorzugende Alternative, den Methoden der anderen Klassen, die tatsächlich Zugriff aufs MainWindow brauchen, das MainWindow als Parameter zu übergeben.
Wenn Du dann Dein MainWindow Objekt in der Methode der anderen Klasse hast erfolgt der Zugriff auf dessen Member (also in Deinem Fall der Member "ui") über den "."- bzw. "->"-Operator (je nachdem, ob es sich um eine Referenz oder einen Pointer auf Dein MainWindow Objekt handelt. Beispiel:
Code: Alles auswählen
void MyOtherClass::someMethod(MainWindow* pMyMainWindow) {
pMyMainWindow->ui->doSomething(); // ruft die Methode "doSomething" am ui-Objekt des MainWindows auf
}
Da Membervariablen idR nicht public sein sollten, brauchst Du evtl noch einen getter (wieder ein Google Stichwort) für das ui Objekt.
Wenn das jetzt alles Chinesisch für Dich war, würde ich Dir ehrlich gesagt empfehlen, Dich nochmal mit den Grundlagen von C++ zu beschäftigen, bevor Du Dich mit Qt weitermachst. Ist nicht böse gemeint, sondern nur ein gut gemeinter Rat.
[Edit]: Ok, Deinem Zusatz entnehme ich, dass Du ja doch nicht ganz so weit davon entfernt bist, wenn Du in anderen Klassen schon Methoden Deines MainWindows aufrufen kannst. Dann gilt wohl nur der zweite Teil meines Posts über den Zugriff auf die Membervariable "ui" des MainWindows. Ehrlich gesagt, empfinde ich es als gar nicht so unschön, das ganze in Methoden des MainWindows zu kapseln.