Seite 1 von 1

3 Probleme, benötige schnelle Hilfe!

Verfasst: 13. Juli 2006 12:52
von ConcordeLord
Hallo, hab mal wieder 3 Probleme und es ist echt dringend.

1. Ist es möglich, die Status Tips, die man Widgets im Designer mitgeben kann irgendwie zu nutzen, zum Beispiel eine Offsetadresse und diese dann über den Status Tip auslesen?

2. Wie bekomme ich Infos von einer Klasse, die die Uhrzeit enthält auf alle anderen Klassen übertragen. Dazu muss doch die eine Klasse mit den Infos die anderen Klassen kennen, oder?

3. In meinem Compiler tritt eine Warnung auf, dass wenn ich Methoden als Slots definiert habe der Compiler sagt, dass dieser Slot nicht vorhanden ist. Dem entsprechend werden die Methoden nicht aufgerufen. Hab beides probiert, als Private und als Public Slots, bei beiden Tests das selbe Ergebnis.
Als Bsp. connect(Object1, SIGNAL(clicked()), this, SLOT(Methode()));
Im Header die Methode als Slot definiert und Aufruf erfolgt so:

Klasse::Methode()
{
....
}
Hab echt keine Ahnung, was da falsch sein soll. Hoffe ihr könnt mir irgendwie helfen.
THX

Re: 3 Probleme, benötige schnelle Hilfe!

Verfasst: 13. Juli 2006 14:43
von OscarWild
ConcordeLord hat geschrieben:1. Ist es möglich, die Status Tips, die man Widgets im Designer mitgeben kann irgendwie zu nutzen, zum Beispiel eine Offsetadresse und diese dann über den Status Tip auslesen?
--> QWidget::statusTip ()
ConcordeLord hat geschrieben:2. Wie bekomme ich Infos von einer Klasse, die die Uhrzeit enthält auf alle anderen Klassen übertragen. Dazu muss doch die eine Klasse mit den Infos die anderen Klassen kennen, oder?
-> Signals&Slots
ConcordeLord hat geschrieben:3. In meinem Compiler tritt eine Warnung auf, dass wenn ich Methoden als Slots definiert habe der Compiler sagt, dass dieser Slot nicht vorhanden ist. [...]
Als Bsp. connect(Object1, SIGNAL(clicked()), this, SLOT(Methode()));
-> Q_OBJECT-Makro in der Klassendeklaration vergessen
-> Parameterliste von Signal/Slot stimmen nicht überein bzw. sind anders deklariert, als bei connect() angegeben
ConcordeLord hat geschrieben:Im Header die Methode als Slot definiert und Aufruf erfolgt so:
Klasse::Methode()
{
....
}
:shock: :?:

Verfasst: 14. Juli 2006 11:52
von OscarWild
Bzw. zu 2.: wenns nicht eventbasiert sein soll, dann deklarier eben in der Klasse, die die Zeit liefert, eine statische getter-Methode, also

Code: Alles auswählen

class MeineUhrzeit
{
  ...
public:
  static const QWasAuchImmerFürEinTyp getTime();
  ...
}
Jede andere Klasse darf dann einfach MeineUhrzeit::getTime() benutzen.

Verfasst: 14. Juli 2006 15:36
von Burgpflanze
Im Header die Methode als Slot definiert und Aufruf erfolgt so:
Klasse::Methode()
{
....
}
Es fehlt void oder int oder ... vor Klasse::Methode().

Beispiel:

Code: Alles auswählen

//klasse.h

...
protected slots:
        void Methode();
...

Code: Alles auswählen

//klasse.cpp

...
void Klasse::Methode()
{
...
}

Verfasst: 14. Juli 2006 15:52
von OscarWild
Burgpflanze hat geschrieben:Es fehlt void oder int oder ... vor Klasse::Methode()
Ohne expliziten Rückgabetyp wird vom Compiler int angenommen. Entspricht das nicht der Deklaration, würde das aber nicht zu einer Warnung, sondern zum Abbruch der Kompilierung führen.
Ich verstehe allerdings nicht, was der OP mit "und Aufruf erfolgt so" meint...