Slot wird nie aufgerufen

Alles rund um die Programmierung mit Qt
Antworten
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Slot wird nie aufgerufen

Beitrag von pospiech »

Ich habe ein widget was periodisch einen Thread aufruft, damit dieser Werte von einem Gerät ausliest. Wenn der Thread diese Werte gesammelt hat soll über ein Signal eine Function im widget ausgelöst werden in der das widget die Werte vom Thread ausliest.

Das connect sieht so aus:

Code: Alles auswählen

void widgetPositionInformation::connectSignalSlots()
{
	if (TranslationStage)
		connect(TranslationStage, SIGNAL(positionReached()), this, SLOT(UpdateValues()));
	connect(widgetPositionInformationThreadImpl, SIGNAL(valuesReady()), this, SLOT(OnUpdateValuesReady()));
}
die Funktion OnUpdateValuesReady(); existiert und ist ein SLOT.

in widgetPositionInformationThreadImpl wird das Signal am Ende von run() ausgelöst:

Code: Alles auswählen

void widgetPositionInformationThread::run()
{
...
	emit valuesReady();
}
Das connect funktioniert und liefert auch keinen Fehler auf der Konsole, das emit wird wie erwartet aufgerufen, aber die Funktion OnUpdateValuesReady() wird niemals aufgerufen.

Was könnte der Grund sein, und wie könnte ich das debuggen?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Nach dem Verlassen von run() ist der Thread weg - ggf. ist das das Problem. Besser auf QThread::finished() abfragen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
pospiech
Beiträge: 232
Registriert: 1. September 2006 17:20
Wohnort: Hannover

Beitrag von pospiech »

Christian81 hat geschrieben:Nach dem Verlassen von run() ist der Thread weg - ggf. ist das das Problem. Besser auf QThread::finished() abfragen.
Habe ich ausprobiert, hat das Problem auch nicht gelöst. Der Slot wird trotzdem nie aufgerufen.

Ironischerweise funktioniert es in einem Dialog und in einem anderen nicht. In beiden wird das widget identisch eingebetet und aufgerufen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann bitte ein kleines Testcase das das Problem nachstellt - so wüsste ich nichts weiter.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
hilefoks
Beiträge: 144
Registriert: 13. März 2008 16:09

Beitrag von hilefoks »

Hi,

du hast aber in deinem Thread eine Event-Loop gestartet, oder?

MfG,
Hilefoks
Antworten