Logging output in QT GUI

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@passe.partout:
Warum kreierst Du extra einen neuen Account, um das loszuwerden? Für Kritik ist hier jeder offen, solange es um die Sache geht und nicht beleidigend oder unhöflich wird (das rosa Schweinchen hat auch einen Namen)
Poseidonius
User
Beiträge: 63
Registriert: Montag 23. Januar 2006, 08:58

Neben der Aufregung in diesem Thread wollte ich nur kurz Danke sagen für die Anmerkungen und Korrekturen von lunar hinsichtlich meines Codes. Habe einiges daraus gelernt ...

Grüße und einen schönen Abend noch

Poseidonius
passe.partout
User
Beiträge: 11
Registriert: Donnerstag 9. September 2010, 10:33

Hi Poseidonius,

zum Thema Spam, ich habe die Lösung von lunar mal aber sowas von überarbeitet:

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-

import logging

from PyQt4.QtGui import QApplication, QTextEdit

class QTextEditLoggingHandler(logging.Handler):
  def __init__(self, text_edit):
    logging.Handler.__init__(self)
    self.text_edit = text_edit

  def emit(self, record):
    self.text_edit.append(self.format(record))


def main():
    import sys
    app = QApplication(sys.argv)
    window = QTextEdit()
    window.show()
    logger = logging.getLogger("GUI")
    handler = QTextEditLoggingHandler(window)
    handler.setFormatter(
        logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s",'%H:%M:%S'))
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)

    logger.debug("DEBUG")
    logger.warning('WARNING')
    logger.info("INFO")

    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
Man wird auf den ersten Blick zwar kaum einen Unterschied erkennen, aber diese Lösung ist jetzt viel "kürzer" und "eleganter", da QMainWindow() nicht benötigt wird und somit noch zwei Zeilen zusätzlich herausfallen, die zum Verständnis ja eh nichts beitragen...

An alle, können wir jetzt nicht die ursprünglichen Lösungen löschen???

Das war natürlich ironisch...
Mich hat nur gestört, dass es zu solchen Aussagen kommt, wie: "Er hat vielleicht die Atombombe erfunden, aber meine hat diese wunderbaren Beschleunigungsstreifen...". Soviel zum Stil.
Spam, Spam, Spam wahrscheinlich wird sich noch jemand aufregen :lol:

und @jerch: Nein, habe mich nicht nur deswegen angemeldet, aber Spamming ist halt ein generelles Problem, bei dem man sich auch mal trauen muss es offen anzusprechen und nicht weg sehen darf! Ich wundere mich das keiner geschrieben hatte: "Frag Google". :roll: Und misst du nicht mit zweierlei Maß?
BlackJack

@passe.partout: Mich würde mal interessieren wie Du "Spam" definierst!? Das scheint nicht die übliche Bedeutung für Dich zu haben. Ich verstehe Deinen Beitrag jedenfalls nicht.
passe.partout
User
Beiträge: 11
Registriert: Donnerstag 9. September 2010, 10:33

@BlackJack: siehe meinen ersten Beitrag...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

passe.partout hat geschrieben: Mich hat nur gestört, dass es zu solchen Aussagen kommt, wie: "Er hat vielleicht die Atombombe erfunden, aber meine hat diese wunderbaren Beschleunigungsstreifen...". Soviel zum Stil.
Dein Bild ist falsch! lunar hat ja gerade nicht nur Schönheitsfehler aufgedeckt, sondern konzeptionelle Schwächen. Darauf habe ich Dich in meinem Posting bereits hingewiesen; vielleicht magst Du die Passage noch mal nachlesen?
passe.partout hat geschrieben: und @jerch: Nein, habe mich nicht nur deswegen angemeldet, aber Spamming ist halt ein generelles Problem, bei dem man sich auch mal trauen muss es offen anzusprechen und nicht weg sehen darf!
Du hast nur noch nicht verstanden, dass das kein Spamming ist - im Gegensatz zu Deinen bisherigen Postings btw :twisted:

Mal so als Tipp: Du kommst neu in eine Community rein und präsentierst Dich in einem extrem störrischen, aufdringlichen und besserwisserischen Image. Hinzu kommen augenscheinlich mangelnde Kenntnisse in Sachen Python und der Art hier im Forum zu diskutieren - was Du ja auch als anonymer Mitleser ja durchaus hättest erwerben können. Ersteres erwirbt man sich eben u.a. durch das Lesen von Postings wie von lunar; naja, evtl. eben genau die Erklärung für Deine Lücken. Als Fazit bleibt leider, dass ich und vermutlich viele andere hier, nun ein negatives Bild von Dir haben. Ich denke mal das ist nicht gerade in Deinem Interesse, oder?

Selbst der OP hat ja deutlich gemacht, dass er sich über die Anmerkungen von lunar gefreut hat :!:
Damit ist Deinem Spamming-Vorwurf aber auch endgültig die Grundlage genommen ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@passe.partout: Das ist ein Beispiel was Du als Spam ansiehst, da ich das da überhaupt nicht erkennen kann, wollte ich halt gerne eine Erklärung.

Für mich, und das ist wohl auch die landläufige Ansicht, ist Spam etwas was in rauen Mengen, ungefragt, und am Thema vorbei, daherkommt. Das ist hier alles nicht der Fall.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Bild

*spam*
the more they change the more they stay the same
passe.partout
User
Beiträge: 11
Registriert: Donnerstag 9. September 2010, 10:33

Da kommt man aus dem Urlaub und was sieht man :roll:

Noch mal ganz leicht, damit es auch Götter wie Hyperion raffen...

F: Wozu ist ein Forum da?
A: Es ist ein Platz um Fragen zu stellen und um Antworten und Hilfe zu bekommen!

Richtig Hyperion, ich hoffe, du bist soweit mitgekommen?

F: Wozu ist ein ein Forum nicht da?
A: Fragenden nicht zu helfen und sich selber zu profilieren!

Hyperion, ich hoffe du bist noch da :shock:

Jetzt frage ich, wenn wir ganz an den Anfang gehen:
1. Ein Fragender, bekommt KEINE Hilfe...
1.5 (außer ein paar Aussagen, die nach Moskau führen...)
2. Der Hilfeersuchende stellt dann für andere mit dem gleichen Problem, nachdem er keine Hilfe oder Tips bekommen hat, seine eigene Lösung ein ...
3. Diese Lösung wird dann erst kritisiert ...
4. Aber danach, wird gönnerhaft auf eine Anfrage eingegangen, so könne man das nicht machen...
(nachdem die Lösung schon gefunden wurde)
(deswegen auch mein Beispiel mit der Atombombe)

F: WAS stimmt bei diesem Ablauf nicht????
A: bitte von Hyperion :K

PS.: Ich hoffe, jetzt hast du es endlich gerafft, noch leichter kann ich es wirklich nicht machen...
BlackJack

@passe.partout: Du hilfst hier mit Deinen herablassenden Zurechtweisungen und Profilierungsbeiträgen keinem weiter. Du hast weder eine Frage zum Thema gestellt noch eine beantwortet, benutzt also das Forum nach Deinen eigenen Massstäben nicht bestimmungsgemäss. :-)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

passe.partout hat geschrieben: Noch mal ganz leicht, damit es auch Götter wie Hyperion raffen...
Hui, danke :mrgreen:

Ergänzend zu BlackJacks treffender Analyse:
passe.partout hat geschrieben: F: Wozu ist ein ein Forum nicht da?
A: Fragenden nicht zu helfen und sich selber zu profilieren!
:twisted:
passe.partout hat geschrieben: Jetzt frage ich, wenn wir ganz an den Anfang gehen:
1. Ein Fragender, bekommt KEINE Hilfe...
Doch hat er!
passe.partout hat geschrieben: 1.5 (außer ein paar Aussagen, die nach Moskau führen...)
lunar hat dem Fragenden doch damit klar gemacht, dass sein Lösungssuche auf einem falschen Ansatz basierte. Hat der OP übrigens direkt danach selber erkannt. Ich denke er fand den Hinweise daher wohl hilfreich.
passe.partout hat geschrieben: 2. Der Hilfeersuchende stellt dann für andere mit dem gleichen Problem, nachdem er keine Hilfe oder Tips bekommen hat, seine eigene Lösung ein ...
3. Diese Lösung wird dann erst kritisiert ...
4. Aber danach, wird gönnerhaft auf eine Anfrage eingegangen, so könne man das nicht machen...
(nachdem die Lösung schon gefunden wurde)
Es gibt niemals die Lösung! Aber das kapierst Du ja nicht :-) Im übrigen fand der OP auch diese Kritik selber hilfreich.

Desweiteren lesen eben ja auch andere Leute später diesen Thread evtl. noch einmal (wie Du in Punkt 2 ja selber sagst!) und denen sollte keine "schlechte" Lösung präsentiert werden.

Deine Aussagen und Anschuldigungen entbehren einfach jeglicher Grundlage; dazu präsentierst Du Dich hier in einer geradezu asozialen Manier - aber auch dazu schrieb ich Dir ja schon etwas.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
passe.partout
User
Beiträge: 11
Registriert: Donnerstag 9. September 2010, 10:33

@Hyperion: Kannst du es dir bitte nochmal durchlesen? Deine Auszüge waren nicht die Antwort auf meine Frage!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

passe.partout hat geschrieben:@Hyperion: Kannst du es dir bitte nochmal durchlesen? Deine Auszüge waren nicht die Antwort auf meine Frage!
Ok, ich hätte es natürlich noch expliziter schreiben können - hätte nicht gedacht, dass das jemand so nicht kapieren kann:
passe.partout hat geschrieben: F: WAS stimmt bei diesem Ablauf nicht????
A: bitte von Hyperion
Die einzelnen Schritte sind schlicht falsch oder falsch dargestellt! (Bis auf Schritt 3 evtl.) Genau das habe ich doch in meinem oberen Posting für einzelnen Abschnitte explizit und damit insgesamt implizit dargestellt.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
EdgarButan
User
Beiträge: 7
Registriert: Mittwoch 15. September 2010, 17:56

Edit 3: Hier stand ein dummer Spruch.
Zuletzt geändert von EdgarButan am Freitag 17. September 2010, 18:43, insgesamt 2-mal geändert.
lunar

@EdgarButan: Dieser Beitrag war vollkommen überflüssig, und noch dazu durchaus anmaßend und unhöflich. Lass es in Zukunft einfach sein, solche Beiträge bringen weder die Diskussion voran noch jemandem zum Lachen. Sie schaden Dir nur selbst, denn ich für meinen Teil verspüre nach so einer Bemerkung nicht mehr allzu viel Lust, Dir bei anderen Problemen zu helfen, und ich glaube, ich spreche damit auch für Hyperion.

Es steht Dir nicht zu, darüber zu befinden, mit wem Hyperion über was diskutiert. Wenn er diese Diskussion führen möchte, so steht ihm das frei. Falls Du meinst, diese Diskussion zu führen wäre eigentlich meine Sache, so kann ich nur sagen, dass ich diese Diskussion gar nicht führen möchte. Ich habe gesagt, was ich sagen wollte, und es hat dem OP offenbar geholfen. Auf das Übrige möchte ich mich gar nicht erst einlassen.

Edit: Ich kann Dir nicht vorschreiben, wie Du mit dieser Situation umzugehen hast, aber einen dummen Spruch ablassen, und dann nicht mal dazu zu stehen, finde ich arm. Wenn Du den Spruch bereust, dann sag das so, anstatt einfach zu tun, als wäre nichts passiert.
EdgarButan
User
Beiträge: 7
Registriert: Mittwoch 15. September 2010, 17:56

Ich wollte den Beitrag eigentlich löschen, da ich ihn bereits bereute; das konnte ich aber nicht mehr tun, da du wohl in der Zwischenzeit einen Beitrag daruntergesetzt hattest, der bei mir noch nicht angezeigt wurde.
Deshalb hielt ich die Meldung „Beitrag kann nicht gelöscht werden“ für eine Fehlfunktion des Forums,weshalb ich ihn bearbeitet habe.
Antworten