Netzwerkroutine ruft GUI auf -> Undefiniertes Verhalten

Alles rund um die Programmierung mit Qt
Antworten
taraquedo
Beiträge: 36
Registriert: 1. März 2007 13:07

Netzwerkroutine ruft GUI auf -> Undefiniertes Verhalten

Beitrag von taraquedo »

Hallo!

Ich nutze QTcpServer, um damit über das newConnection()-Signal Clientverbindungen aufzunehmen. Dazu habe ich eine Klasse ConnectionManager geschaffen, die u.a. eine Liste über die Verbindungen führt.
Nun möchte ich eine QWidgetList haben, die einen Eintrag je Verbindung anzeigt. Dazu habe ich ConnectionManager zu einem Dock-Window gemacht (also von QDockWidget und einer UI abgeleitet) und es enthält jetzt eine solche Liste (das war bestimmt nicht klug). Jedes mal beim newConnection()-Signal erzeuge ich ein QWidgetListItem und füge es der Liste hinzu. Hier ist das Problem: Unter Linux gibt es keins, aber unter Windows führt dieses Vorgehen mal dazu, dass sich die Anwendung aufhängt, mal geht es aber auch.
Ich vermute, dass der Netzwerkteil ein eigener Thread ist von dem aus ich nicht direkt auf die GUI-Elemente zugreifen darf, finde das aber nirgendwo bestätigt. Ist das wahr und wie kann ich meine Liste erzeugen? (bzw. wie macht man das "sauber")

Grüße!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Nein, es ist kein separater Thread und du must es nicht gesondert behandeln. Du solltest mal mit einem Debugger verfolgen, wo es sich 'aufhängt'.
taraquedo
Beiträge: 36
Registriert: 1. März 2007 13:07

Beitrag von taraquedo »

Hi,

danke für den Hinweis. Habe den Fehler gemacht, dass ich incomingConnection nicht überschrieben habe. Statt dessen habe ich beim newConnection()-Signal ein neues tcpSocket erstellt. Das war irgendwie doppelt und scheinbar löste das die Probleme aus.

Jetzt scheint zumindest der Teil stabil zu sein.

Grüße!
Antworten