Frage

Weiß jemand, wie das Symbol, um Make-up nicht zeigen? Ich bin auf der Suche nach einem Weg, überhaupt kein Symbol zu haben.

War es hilfreich?

Lösung

Unter Windows

Erster Schritt:

Erstellen Sie ein transparentes Symbol entweder ein Icon-Editor oder eine Website wie rw-Designer . Speichern Sie es als transparent.ico.

Zweiter Schritt:

from tkinter import *

tk = Tk()
tk.iconbitmap(default='transparent.ico')
lab = Label(tk, text='Window with transparent icon.')
lab.pack()
tk.mainloop()

Auf Unix

Etwas Ähnliches, aber mit einem xbm Symbol.

Andere Tipps

Ähnlich wie die akzeptierte Antwort (mit der con von hässlicher sein):

import tkinter
import tempfile

ICON = (b'\x00\x00\x01\x00\x01\x00\x10\x10\x00\x00\x01\x00\x08\x00h\x05\x00\x00'
        b'\x16\x00\x00\x00(\x00\x00\x00\x10\x00\x00\x00 \x00\x00\x00\x01\x00'
        b'\x08\x00\x00\x00\x00\x00@\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
        b'\x00\x01\x00\x00\x00\x01') + b'\x00'*1282 + b'\xff'*64

_, ICON_PATH = tempfile.mkstemp()
with open(ICON_PATH, 'wb') as icon_file:
    icon_file.write(ICON)

tk = tkinter.Tk()
tk.iconbitmap(default=ICON_PATH)
label = tkinter.Label(tk, text="Window with transparent icon.")
label.pack()

tk.mainloop()

Es schafft nur die Datei im Fluge statt, so müssen Sie nicht um eine zusätzliche Datei tragen. Mit der gleichen Methode, man könnte auch für Unix ein ‚.xbm‘ Symbol tun.

Edit: Die ICON verkürzt werden kann noch weiter durch @Magnus Hoff :

import base64, zlib

ICON = zlib.decompress(base64.b64decode('eJxjYGAEQgEBBiDJwZDBy'
    'sAgxsDAoAHEQCEGBQaIOAg4sDIgACMUj4JRMApGwQgF/ykEAFXxQRc='))

Soweit ich weiß, ist die nächste Sie zu einem „leeren“ Symbol erhalten wird man verwendet, die die gleiche Farbe wie der Titelleiste des Fensters ist. Aber dann wieder viele Nutzer verwenden verschiedene Farbthemen, so wird es nicht sehr gut gehen.

Wenn Sie jedoch verwenden py2exe Sie so etwas wie Resource Hacker verwenden können das Symbol zu tauschen. Aber in dem Python-Programmen Text Staat, das Beste, was Sie tun können, ist zu ersetzen. Eine Art, wie Jar-Dateien verwenden, um das Java-Symbol, tkinter apps das TK-Symbol hat. Schließlich ... wie Java, Ihre Anwendung durch ein Zwischenprogramm übersetzt wird. Da ein anderes Programm den Code ausgeführt wird, müssen Sie diese anderen Programm ändern. Zum Glück python / tk ist ein bisschen flexibler als die JVM in Bezug auf die Symbole, so dass Sie das Symbol ersetzen kann. Aber das Entfernen es nicht ganz zur Zeit eine Option ist.

-Johannes

Basierend auf früheren Antworten i verwendet diese Lösung:

from PIL import ImageTk
import zlib,base64
import Tkinter

icon=zlib.decompress(base64.b64decode('eJxjYGAEQgEBBiDJwZDBy'
'sAgxsDAoAHEQCEGBQaIOAg4sDIgACMUj4JRMApGwQgF/ykEAFXxQRc='))
root=Tkinter.Tk()
image=ImageTk.PhotoImage(data=icon)
root.tk.call('wm', 'iconphoto', root._w, image)
root.mainloop()

Update:

Der leicht modifizierte Code (try Klausel statt if TkVersion) ein transparentes (no) Symbol auf:

Linux (Mint 18.1), Python 2.7

Linux (Mint 18.1), Python 3.5.1

Microsoft Windows 10, Python 2.7.13

Es produziert ein schwarzes Symbol (funktioniert nicht) auf:

Windows-8.1, Python 3.6

Eine ziemlich alte Frage, aber die Lösungen nicht für mich arbeiten. Ich fand eine partielle einfache Lösung, mit einer Folgefrage meines eigenen.

Die Teillösung (Tk 8.5, siehe unten) - Photobildes der blank() Methode:

from Tkinter import *

root=Tk()

icon=PhotoImage(height=16, width=16)
icon.blank()

root.tk.call('wm', 'iconphoto', self.master._w, icon)

root.mainloop()

Auf Python 2.7, 10 Fenster, das funktioniert gut, das gewünschte „kein Symbol“ für die neue App produzieren.

Doch auf Python 3.6, Win 8.1, klemmt das die GUI, die ich denke, auf die neuere Tk 8.6 verwendet ist, und obwohl ich fand, dass die neue 8.6-Notation von wm_iconphoto() Verwendung in diesem Fall nicht gestauten hindurchgeht:

try:
    from tkinter import *
except:
    from Tkinter import * 

root=Tk()

#Identical for Py2.7/Tk8.5 and Py3.5/Tk8.6
icon=PhotoImage(height=16, width=16)
icon.blank()

#Picking a notaion based on Tk version to avoid jamming
try:
    root.wm_iconphoto('True', icon)   #New Tk 8.6 style        
else:
    #Jams Python 3.5 with Tk 8.6 on Windows
    root.tk.call('wm', 'iconphoto', self.master._w, icon)   



root.mainloop()

Es produziert ein schwarzes Symbol auf 3,6, anstelle der transparenten eines bei 2,7 / 8,5.

Es könnte ein Weg sein, um die Pixel transparent eines nach der anderen, um „Transparenz einstellen“ können - http://wiki.tcl.tk/1449

Aber ich weiß nicht, ob es über Tkinter auch machbar ist. Gott bevorzugt die mutige, jemand anderes an der Reihe, wenn?

Aktualisiert Frage :? Warum funktioniert diese Arbeit auf Py3.6 / Windows-

Alternative zu soluation des @ ubomb für Tkinter.PhotoImage der integrierten Unterstützung durch die Verwendung für die Verarbeitung von .gif Bilder benutzerdefinierte Bilder hinzufügen.

Aus Datei:

icon = Tkinter.PhotoImage(file="logo.gif")

von base64:

gif_base64_string = """ R0lGODdhEAAQAIcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh ... 4B8AAP9Ci/4HoLTpfwD+qV4NoHVAADs= """

icon = Tkinter.PhotoImage(data=gif_base64_string)

effbot.org Link für weitere Informationen:

http://effbot.org/tkinterbook/photoimage.htm

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top