Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Stdout in QTextEdit immer in selbe Zeile schreiben?

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.11.2002
    Ort
    Obertshausen
    Beiträge
    87

    Stdout in QTextEdit immer in selbe Zeile schreiben?

    Hallo zusammen,

    bin sicher, dass es ganz einfach geht, aber mir fehlt der Ansaztzpunkt:

    Ich habe ein GUI für cdrecord gemacht, was die Ausgabe in ein QTextEdit namens mle_log schreibt:
    Code:
    void Kwickcdcopy::readFromStdout()
    {
    mle_log->append(my_process->readStdout() );
    }
    jetzt ist es ja so, dass cdrecord die Fortschrittsinfo immer in der selben zeile schreibt (z.B. 02:03:45 oder Wrote 225 of 444 MB (Buffer 100%) )

    Im QTextEdit kommt aber jede Info in eine neue Zeile gefolgt von einem Kästchen, das etwa so aussieht[] (Ich vermute das ist in der Konsole der Befehl wiederr an den Zeielnfang zu springen)

    Wie bekomme ich meine Ausgabe dazu bei solchen Meldungen auch immer in die selbe Zeile zu schreiben?

    Ich hoffe ich konnte verständlich machen, was ich meine und Ihr habt einen Tipp für mich.
    Celindir
    May the source be with you...

    www.celindir.de

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    das musst du schon manuell implementieren.

    Eine Funktion mle_log->acceptEscapeSequences(true); gibts nicht - einfach n bisschen Stringvergleiche machen...

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    hi,

    das ganze kannst du mit communication flags umgehen.

    proc->setCommunication( QProcess::Stdout | QProcess::Stderr | QProcess::DupStderr );

    und mit readStdout() dann auslesen.

    gruss,
    tuxipuxi.

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Original geschrieben von tuxipuxi
    hi,

    das ganze kannst du mit communication flags umgehen.
    Inwiefern hilft das, die \r in \n umzuwandeln?

    Meines Wissens hilft das nur, auch die Ausgabe am stderr mit der Methode für stdout zu lesen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    Original geschrieben von anda_skoa
    Inwiefern hilft das, die \r in \n umzuwandeln?

    Meines Wissens hilft das nur, auch die Ausgabe am stderr mit der Methode für stdout zu lesen.

    Ciao,
    _
    wie das hilft, kann ich dir auch nicht sagen. du erinnerst dich aber sicher an unser gespräch wo du mir geraten hast, dass die fehlerausgabe gepuffert ist und man deswegen das auf den stdout umleiten sollte. im code des betreffenden programms, von dem ich damals den output gelesen habe, wurde auch \r verwendet.. und mit deinen tipps funktionierte es dann auch.

    gruss,
    tuxipuxi.

  6. #6
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477

    Re: Stdout in QTextEdit immer in selbe Zeile schreiben?

    Original geschrieben von celindir

    Wie bekomme ich meine Ausgabe dazu bei solchen Meldungen auch immer in die selbe Zeile zu schreiben?
    Kein append() machen, weil das, wie der Name schon andeutet, anhängt.
    Einfach jedesmal setText()

    Und das \r entfernen oder durch \n ersetzen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

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