質問

アイコンを表示させない方法を知っている人はいますか?アイコンをまったく表示しない方法を探しています。

役に立ちましたか?

解決

Windowsでは

ステップ1:

アイコンエディタ、または RW-デザイナーのようなサイトのいずれかを使用して透明アイコンを作成します。 >。 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()

UNIXの場合

似たような、しかしxbmアイコンを使用。

他のヒント

(醜いというCONで)受け入れ答えと同様に

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()

アップデート:

わずかに変更されたコード (try の代わりに条項 if TkVersion) は、以下に透明 (いいえ) アイコンを生成します。

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 に関連していると思いますが、新しい 8.6 の表記法では wm_iconphoto() この場合、妨害を受けずに通過します。

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 ではなぜ機能しないのでしょうか?

内蔵のTkinter.PhotoImage画像を処理するためのサポート.gifのを利用してカスタムイメージを追加するための@ ubombのsoluationに

オルタナティヴます。

ファイルから:

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

のbase64から:

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

icon = Tkinter.PhotoImage(data=gif_base64_string)

effbot.org詳細はリンクます:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top