Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Externer Process und QTimer

  1. #1
    Registrierter Benutzer Avatar von microdigi
    Registriert seit
    13.07.2002
    Ort
    Bad Soden-Salmuenster
    Beiträge
    104

    Externer Process und QTimer

    Hallo folx, ich denke, Unterstrich wirds wieder erwischen

    Die Frage ist: Ich sehe keinen QTimer-event, wenn ich aus einem Qt-Object
    ein externes Utility (ldapsearch) aufrufe.

    Ich starte aus einer Applikation (QT) ein externes Programm 'ldapsearch'.
    Das geschieht über einen process:
    NEW_OBJ (LDAP_PROCESS, QProcess);
    LDAP_PROCESS->addArgument(execution_command); //('ldapsearch')
    ADD_PROCESS_ARGUMENT_P (LDAP_PROCESS, "LLL");
    ...mehr parameters
    LDAP_PROCESS->start()) // here we go, and return immediately
    ...
    do
    {
    ...

    } while (LDAP_PROCESS->isRunning() );


    Ich sehe (natürlich) auch kein update des GUI, von dem das aufgerufen wird; das ist verständlich.
    Aber ich kann aus der Schleife heraus einen update() erfolgreich ausführen.

    Das ganze rennt gut,
    nur ich kriege einen Timer-event überhaupt nicht mit, der zu der Zeit abläuft (ablaufen soll).

    Den Timer-event habe ich sowohl wie üblich vorher aus der Applikation heraus aufgesetzt,
    NEW_OBJ (ldap_check_network_timer, TMR());
    als auch 'an den process' gebunden, nachdem der gebaut wurde:
    NEW_OBJ (ldap_check_network_timer, TMR(LDAP_PROCESS));
    Beides mit dem üblichen Slot-Verfahren.
    Der QTimer lebt, das sehe ich, aber er schiesst nicht.

    Ich benutze QTimer schon seit drei Jahren,
    aber hier erstaune ich, dass da nichts ankommt.

    Wohl (Vermutung) weil das laufende 'ldapsearch' alles krallt.

    Irgend ein Tipp was bei meinem Denken klemmt?

    Danke - digi
    Geändert von microdigi (25-11-2005 um 19:31 Uhr)
    Rentner66 (als Nebenberuf)
    'Fossil' der ersten IT-Stunde, weltweit manches 'ausgefressen'
    0173 1047 047
    Intel P4(686)-2,53 GHz, 1GB, 2x80 GB, 2xNW, Sound, CD-RW, DVD-DL-RW, ATI Radeon 9000,
    LINUX (SuSE-9.3-Prof -- KDEvelop-QT-Professional),
    after ten years m$ VS97: C++ & MFC > NO windows anymore! NEVER-EVER! :eek: ...
    e-commerce networker

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    QProcess läuft im Hauptthread, dem GUI Thread bzw der Haupteventloop.

    Diese bearbeitet auch die Timer und GUI Events.

    Wenn du diesen Thread über die Schleife blockierst, kann er seine anderen Aufgaben so lange nicht erledigen, bis er wieder zurück ist.

    Einen QProcess benutzt man daher wie andere Eventloop entkoppelte Klassen über deren Signals, d.h. starten, aus der Methode zurückkehren und dann auf die Signals der Instanz reagieren.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer Avatar von microdigi
    Registriert seit
    13.07.2002
    Ort
    Bad Soden-Salmuenster
    Beiträge
    104
    Oh, DAS ist der Grund, erklärt manche Kopfschmerzen

    Sachma, Unterstrich, wie ist das denn mit dem ...-Studenten?
    Du mußt doch langsam mal Deine Prüfung(en) mit Glanz bestanden haben....
    Du möchtest doch diesem Forum zu Ehren nicht ein paar Ehrenrunden drehen..? Kann ich mir bei Deinem Wissen nicht vorstellen.

    Aloha - und DANKE - digi

    QProcess läuft im Hauptthread, dem GUI Thread bzw der Haupteventloop.

    Diese bearbeitet auch die Timer und GUI Events.

    Wenn du diesen Thread über die Schleife blockierst, kann er seine anderen Aufgaben so lange nicht erledigen, bis er wieder zurück ist.

    Einen QProcess benutzt man daher wie andere Eventloop entkoppelte Klassen über deren Signals, d.h. starten, aus der Methode zurückkehren und dann auf die Signals der Instanz reagieren.
    Rentner66 (als Nebenberuf)
    'Fossil' der ersten IT-Stunde, weltweit manches 'ausgefressen'
    0173 1047 047
    Intel P4(686)-2,53 GHz, 1GB, 2x80 GB, 2xNW, Sound, CD-RW, DVD-DL-RW, ATI Radeon 9000,
    LINUX (SuSE-9.3-Prof -- KDEvelop-QT-Professional),
    after ten years m$ VS97: C++ & MFC > NO windows anymore! NEVER-EVER! :eek: ...
    e-commerce networker

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •