[gelöst] MainWindow Funktion nicht vorhanden?
Verfasst: 5. Juli 2005 08:52
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
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