Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » Zugriff auf fremde Objekte

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.08.2004, 12:06 Uhr
~Igor
Gast


Wie kann man in QT auf ein anderes Objekt zugreifen (Eigenschaften und Methoden)?
Ich habe eine MainForm auf der eine DatabaseForm geöffnet werden kann. Die DatabaseForm hat ein Objekt von einer anderen Klasse. Auf der DatabaseForm kann man eine TableForm öffnen. Jetzt möchte ich von der Tableform auf das Objekt der Databaseform zugreifen. Obwohl wir die Mainform und Databaseform in der tableform includet hatten kommt die fehlermeldung "Databaseform undeclared". Do greife ich auf das Objekt zu: "DatabaseForm->Objekt->Methode()"
Danke für die Hilfe im voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.08.2004, 16:41 Uhr
typecast
aka loddab
(Operator)


Leider kann ich aus deiner Beschreibung dein Problem nicht erkennen.
Poste mal ein bischen Code. Was ich brauchen wuerde waere der Teil, in dem steht, wie du ein Object vom Typ DatabaseForm deklariertst und anlegst.

Dann wie DatabaseForm::Objekt deklariert ist (public, pivate, protected)

In welcher Methode versuchst du den aufruf zu starten und wie sieht die genaue Fehlermeldung aus.

Ich vermute mal, dass ich weiss was dein Problem ist, aber ich bin nicht bereit hier ins blaue zu raten
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.08.2004, 07:30 Uhr
~Igor
Gast


Fehlermeldung: "DatabaseForm1 undeclared"

Code:
class DatabaseForm : public QWidget {
    Q_OBJECT

Aufruf in MainForm:

Code:
DatabaseForm *DatabaseForm1 = new DatabaseForm();
DatabaseForm1->show();


Aufruf in DatabaseForm:

Code:
TableForm *TableForm1 = new TableForm();
TableForm1->show();


TableForm:

Code:
TableForm *TableForm1 = new TableForm();
DatabaseForm1->Objekt->Methode();


Objekt ist ein Public Member der DatabaseForm-class

Ich möchte auch gerne wissen, wie man allgemein auf Objekte anderer Klassen zugreift in QT (Includes/Aufruf). Hoffe du kannst mir jetzt besser helfen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.08.2004, 23:08 Uhr
typecast
aka loddab
(Operator)


Ich habe den Zusammenhang zwischen TableForm und DatabaseForm nicht verstanden. Koenntest du das noch mal erklaeren?

Und WAS ist denn Object fuer ein Typ? Hast du es auch instanziert? Hast du den Header der DatabaseForm enthaelt auch in die Datei includiert, von der aus du darauf zugreifst?

Was deine allgemeine Frage angeht kann ich nur sagen, dass Qt nur eine Biliothek ist, die auf C++ aufbaut. Das heisst, dass der Objektzugriff genauso laeuft, wie du das von C++ gewoehnt bist.

Wenn du das nicht gewoehnt bist, dann wuerde ich dir empfehlen mal was darueber zu lesen. In unserer Ebook Sektion findest du zum Beispiel da z.B. ein Buch ueber C++
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.08.2004, 10:29 Uhr
~Igor
Gast


Ich habe den Fehler nun selbst gefunden. Ich habe in der TableForm einen Zeiger auf DatabaseForm1 übergeben (im Konstruktor) und die Klasse DatabaseForm in TableForm bekannt gemacht habe. Jetzt findet er die DatabaseForm und kann auf das Objekt zugreifen.
Danke für die Hilfe.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: