3 Probleme, benötige schnelle Hilfe!

Alles rund um die Programmierung mit Qt
Antworten
ConcordeLord
Beiträge: 14
Registriert: 9. Mai 2006 09:06

3 Probleme, benötige schnelle Hilfe!

Beitrag 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
OscarWild
Beiträge: 54
Registriert: 19. Juni 2006 19:59

Re: 3 Probleme, benötige schnelle Hilfe!

Beitrag 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: :?:
OscarWild
Beiträge: 54
Registriert: 19. Juni 2006 19:59

Beitrag 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.
Burgpflanze
Beiträge: 89
Registriert: 24. Februar 2006 16:41
Wohnort: Dresden

Beitrag 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()
{
...
}
OscarWild
Beiträge: 54
Registriert: 19. Juni 2006 19:59

Beitrag 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...
Antworten