Wie man anzeigen von text auf dem Bildschirm ohne ein Fenster mit Python

Das Problem:

Muss ich schreiben, text direkt auf dem Bildschirm ohne ein Fenster. Der text, der angezeigt werden muss über allen anderen Fenstern und Vollbild-Anwendungen und sollten nicht angeklickt werden oder interactable in keiner Weise.

Beispiel:
Wie man anzeigen von text auf dem Bildschirm ohne ein Fenster mit Python
Der text muss nicht einen transparenten hintergrund haben wie im Beispiel. Ich kann entweder Python 2 oder 3 auf Windows 7.

Mein Versuch einer Lösung:

Ich habe versucht, ein eigenständiges label mit Tkinter:

Edit: Verbessert mit der Hilfe von Christian Rapp

import Tkinter
label = Tkinter.Label(text='Text on the screen', font=('Times','30'), fg='black', bg='white')
label.master.overrideredirect(True)
label.master.geometry("+250+250")
label.master.lift()
label.master.wm_attributes("-topmost", True)
label.master.wm_attributes("-disabled", True)
label.master.wm_attributes("-transparentcolor", "white")
label.pack()
label.mainloop()

Was funktioniert:

  • Der text angezeigt wird ohne ein Fenster
  • Der text bleibt über allen anderen Fenstern
  • Der hintergrund kann transparent sein

Was nicht:

  • Der text nicht über Vollbild-Anwendungen
  • Der Textbausteine klicken Sie auf Ereignisse, die auftreten, die über es
  • Hintergrund Transparenz ist nicht alpha, so gibt es harte Kanten
  • Fragen und bitten uns, Sie zu empfehlen, oder ein tool finden, in der Bibliothek oder Lieblings-off-site-resource-off-topic für Stack-Überlauf, da Sie dazu neigen zu locken, rechthaberisch Antworten und spam. Stattdessen beschreiben Sie das problem, und was wurde bisher getan, um es zu lösen.
  • Ich bemerkte, dass die von Ihnen zitierten Punkt 5 aus dieser Seite, enthält einen link mit mehr Informationen. Ich habe bearbeitet Sie meine Frage, und das Gefühl, dass es jetzt trifft sich die stackoverflow-Kriterien für eine on-topic-Frage.
  • Versucht haben Sie, label.master.wm_attributes ("alpha", 1.0) für einen transparenten hintergrund?
  • Das macht das ganze label transparent, und es scheint, wie es sein kann unmöglich zu machen, nur den hintergrund transparent. Da für die Herstellung es zu zeigen, über fullscreen, ich bin derzeit auf der Suche nach hardware-overlay "Optionen".
  • Oh sorry, ich dachte, es könnte verwendet werden, für einen transparenten hintergrund. Aber man kann den Missbrauch der Leinwand-widget --> stackoverflow.com/questions/17039481/...
  • Canvas ermöglicht für text mit einem transparenten hintergrund gezeichnet werden, sondern die Leinwand selbst kann nicht einen transparenten hintergrund haben. Oder so dachte ich, bis ich label.master.wm_attributes("-transparentcolor", "white"), die überraschenderweise arbeiten auf Leinwand und Etiketten! Ich habe aktualisiert das Beispiel in der Frage.

InformationsquelleAutor dln385 | 2014-02-17
Schreibe einen Kommentar