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
3 Probleme, benötige schnelle Hilfe!
-
ConcordeLord
- Beiträge: 14
- Registriert: 9. Mai 2006 09:06
Re: 3 Probleme, benötige schnelle Hilfe!
--> QWidget::statusTip ()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?
-> Signals&SlotsConcordeLord 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?
-> Q_OBJECT-Makro in der Klassendeklaration vergessenConcordeLord 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()));
-> 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()
{
....
}
Bzw. zu 2.: wenns nicht eventbasiert sein soll, dann deklarier eben in der Klasse, die die Zeit liefert, eine statische getter-Methode, also
Jede andere Klasse darf dann einfach MeineUhrzeit::getTime() benutzen.
Code: Alles auswählen
class MeineUhrzeit
{
...
public:
static const QWasAuchImmerFürEinTyp getTime();
...
}-
Burgpflanze
- Beiträge: 89
- Registriert: 24. Februar 2006 16:41
- Wohnort: Dresden
Es fehlt void oder int oder ... vor Klasse::Methode().Im Header die Methode als Slot definiert und Aufruf erfolgt so:
Klasse::Methode()
{
....
}
Beispiel:
Code: Alles auswählen
//klasse.h
...
protected slots:
void Methode();
...Code: Alles auswählen
//klasse.cpp
...
void 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.Burgpflanze hat geschrieben:Es fehlt void oder int oder ... vor Klasse::Methode()
Ich verstehe allerdings nicht, was der OP mit "und Aufruf erfolgt so" meint...