[gelöst] MainWindow Funktion nicht vorhanden?

Alles rund um die Programmierung mit Qt
Antworten
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

[gelöst] MainWindow Funktion nicht vorhanden?

Beitrag von Christoph »

Hallo,

ich habe eine Situation für die mir zwar an dieser Stelle ein Workaround
einfällt, ich würde jedoch gerne verstehen, wo der Fehler in meinem Gedankengang liegt:

Ich habe in main() ein QWidget fenster vom Typ hauptfenster erzeugt und der
QApplication anwendung als mainWidget mit

anwendung.setMainWidget(fenster);

zugeordnet.

In hauptfenster habe ich die Funktion int funktion_hauptfenster() deklariert
und implementiert

Ich habe nun neben der Klasse hauptfenster noch eine weitere Klasse datenelement deklariert,
die allerdings keine Unterklasse von hauptfenster ist.

Ich will nun eine Funktion int datenelement::funktion_datenelement(); deklarieren, die
u.A. eine Funktion aufruft, die innerhalb von hauptfenster deklariert ist.

Ich habe mir gedacht, daß es so funktionieren müsste:

int datenelement::funktion()
{
....
....
qApp->mainWidget()->funktion_datenelement();
....
return(0);
}

Mein Gedanke ist (oder vielmehr war), daß der Teil des Ausdrucks "qApp->mainWidget()"
einen Zeiger auf das Objekt fenster zurückliefert, was ja mein mainWidget tatsächlich ist,
das ich dann dazu benutzen kann, um die funktion_datenelement() aufzurufen.

Der Compiler meckert, "funktion_datenelement() undeclared".

Irgendwie hab ich da vielleicht grundsätzlich mit den Klassen und den Gültigkeitsbereichen was falsch verstanden, komme aber einfach nicht drauf.

Wenn zur Erklärung noch Code benötigt wird, bitte mitteilen.


Vielen Dank für alle Bemühungen.

Grüße aus München
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Re: Ochse vorm Berg...

Beitrag von Goos »

Christoph hat geschrieben:
Mein Gedanke ist (oder vielmehr war), daß der Teil des Ausdrucks "qApp->mainWidget()"
einen Zeiger auf das Objekt fenster zurückliefert, was ja mein mainWidget tatsächlich ist,
das ich dann dazu benutzen kann, um die funktion_datenelement() aufzurufen.

Der Compiler meckert, "funktion_datenelement() undeclared".
Du sagst doch selbst, dass dir qApp->mainWidget() nen Zeiger auf dein Hauptfenster zurueckliefert. Wie kommst also auf die Idee, dass du dann fuer dein Hauptfenster-Objekt die Funktion funktion_datenelement() aufrufen kannst, wo du doch selbst sagst, dass die Klasse datenelement nicht mit hauptfenster zutun hat?

Goos
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Ochse vorm Berg...

Beitrag von macman »

Toll, Du Ochse :)

Normalerweise lese ich solche Sachen nicht, wenn die Leute nicht mal in der Lage sind einen vernünftigen Betreff zu formulieren. 'Brauche Hilfe' ist genau so toll. Sehr hilfreich für Leute die nur mal so ins Forum gucken.
Christoph hat geschrieben:Irgendwie hab ich da vielleicht grundsätzlich mit den Klassen und den Gültigkeitsbereichen was falsch verstanden, komme aber einfach nicht drauf.

Wenn zur Erklärung noch Code benötigt wird, bitte mitteilen.
Code ist immer gut, aber Du hast wahrscheinlich nur vergessen dem Compiler mitzuteilen, was für einen Zeiger mainWidget() zurück liefert. Erraten kann er es nicht.
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

Beitrag von Christoph »

@goos:

Vielen Dank, der Ochse hat begriffen !!
Kann ja gar nicht gehen !!

@macman:

Dir auch vielen Dank !!
Antworten