アイコンが表示されないようにする方法を知っている人はいますか?アイコンがまったくない方法を探しています。
ステップ1:
アイコンエディタ、または rw-designer のようなサイトを使用して、透明なアイコンを作成します。 transparent.ico
として保存します。
ステップ2:
from tkinter import *
tk = Tk()
tk.iconbitmap(default='transparent.ico')
lab = Label(tk, text='Window with transparent icon.')
lab.pack()
tk.mainloop()
似たようなものですが、xbm
アイコンを使用しています。
受け入れられた答えに似ています(醜いという短所があります):
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()
代わりにその場でファイルを作成するだけなので、余分なファイルを持ち歩く必要はありません。同じ方法を使用して、Unixの「.xbm」アイコンを作成することもできます。
編集:ICON
は @ Magnus Hoff のおかげでさらに短縮できます:
import base64, zlib
ICON = zlib.decompress(base64.b64decode('eJxjYGAEQgEBBiDJwZDBy'
'sAgxsDAoAHEQCEGBQaIOAg4sDIgACMUj4JRMApGwQgF/ykEAFXxQRc='))
以前の回答に基づいて、私はこのソリューションを使用しました:
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()
私の知る限り、「空白」アイコンに最も近いのは、ウィンドウのタイトルバーと同じ色のアイコンを使用することです。しかし、やはり多くのユーザーが異なる色のテーマを使用しているため、うまく行きません。
ただし、py2exeを使用する場合は、 Resource Hacker のようなものを使用してアイコンを交換できます。しかし、pythonプログラムのテキスト状態では、置き換えるのが最善です。JarファイルがJavaアイコンを使用する方法のように、tkinterアプリにはTKがあります。アイコン。結局のところ... Javaのように、アプリは中間プログラムによって翻訳されています。別のプログラムがコードを実行しているため、他のプログラムを変更する必要があります。幸い、python/tkはJVMよりも少し柔軟性があります。アイコンを置き換えることができるようにアイコンを追加しますが、現在、アイコンを完全に削除することはできません。
-ジョン
_Tkinter.PhotoImage
_画像を処理するための_.gif
_の組み込みサポートを利用して、カスタム画像を追加するための@ubombの解決策の代替手段。
ファイルから:
icon = Tkinter.PhotoImage(file="logo.gif")
base64から:
_gif_base64_string = """ R0lGODdhEAAQAIcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh ... 4B8AAP9Ci/4HoLTpfwD+qV4NoHVAADs= """
_
icon = Tkinter.PhotoImage(data=gif_base64_string)
詳細については、effbot.orgのリンク:
更新:
わずかに変更されたコード(if TkVersion
の代わりにtry
句)は、以下に透明な(no)アイコンを生成します。
Linux(Mint 18.1)、Python 2.7
Linux(Mint 18.1)、Python 3.5.1
Windows 10、Python 2.7.13
以下に黒いアイコンが表示されます(機能しません)。
Windows 8.1、Python 3.6
かなり古い質問ですが、解決策は私にはうまくいきませんでした。私は部分的に単純な解決策を見つけましたが、私自身のフォローアップの質問がありました。
部分的な解決策(Tk 8.5、以下を参照)-PhotoImageのblank()
メソッドを使用:
from Tkinter import *
root=Tk()
icon=PhotoImage(height=16, width=16)
icon.blank()
root.tk.call('wm', 'iconphoto', self.master._w, icon)
root.mainloop()
Python 2.7、Windows 10では、これは正常に機能し、新しいアプリに必要な「アイコンなし」を生成します。
ただし、Python 3.6、Win 8.1では、これはGUIを妨害します。これは、新しいTk 8.6に関連していると思いますが、wm_iconphoto()
を使用する新しい8.6表記が見つかりました。この場合、ジャムなしで通過します:
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()
2.7/8.5の場合の透明なアイコンではなく、3.6に黒いアイコンが表示されます。
「透明度セット」を使用して、ピクセルを1つずつ透明に設定する方法があるかもしれません- http://wiki.tcl.tk/1449
しかし、それがTkinter経由でも実行可能かどうかはわかりません。神は大胆な人を支持しますが、他の誰かの番ですか?
更新された質問:なぜこれがPy3.6/Windowsで機能しないのですか?