1
ttkラベルでは、ラベルの状態に従って表示される複数の画像を指定できます。しかし、私はそれを動作させることはできません。ここにコードがあります。ttkラベルウィジェット内の複数の画像
from tkinter import *
from tkinter.ttk import *
BITMAP0 = """
#define zero_width 24
#define zero_height 32
static char zero_bits[] = {
0x00,0x00,0x00, 0x00,0x00,0x00, 0xf0,0x3c,0x0f, 0xf0,0x3c,0x0f,
0xf0,0x3c,0x0f, 0xf0,0x3c,0x0f, 0x00,0x00,0x00, 0x00,0x00,0x00,
0xf0,0x00,0x0f, 0xf0,0x00,0x0f, 0xf0,0x00,0x0f, 0xf0,0x00,0x0f,
0x00,0x00,0x00, 0x00,0x00,0x00, 0xf0,0x00,0x0f, 0xf0,0x00,0x0f,
0xf0,0x00,0x0f, 0xf0,0x00,0x0f, 0x00,0x00,0x00, 0x00,0x00,0x00,
0xf0,0x00,0x0f, 0xf0,0x00,0x0f, 0xf0,0x00,0x0f, 0xf0,0x00,0x0f,
0x00,0x00,0x00, 0x00,0x00,0x00, 0xf0,0x3c,0x0f, 0xf0,0x3c,0x0f,
0xf0,0x3c,0x0f, 0xf0,0x3c,0x0f, 0x00,0x00,0x00, 0x00,0x00,0x00
};
"""
BITMAP1 = """
#define one_width 24
#define one_height 32
static char one_bits[] = {
0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x0f, 0x00,0x00,0x0f,
0x00,0x00,0x0f, 0x00,0x00,0x0f, 0x00,0x00,0x00, 0x00,0x00,0x00,
0x00,0x00,0x0f, 0x00,0x00,0x0f, 0x00,0x00,0x0f, 0x00,0x00,0x0f,
0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x0f, 0x00,0x00,0x0f,
0x00,0x00,0x0f, 0x00,0x00,0x0f, 0x00,0x00,0x00, 0x00,0x00,0x00,
0x00,0x00,0x0f, 0x00,0x00,0x0f, 0x00,0x00,0x0f, 0x00,0x00,0x0f,
0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x0f, 0x00,0x00,0x0f,
0x00,0x00,0x0f, 0x00,0x00,0x0f, 0x00,0x00,0x00, 0x00,0x00,0x00
};
"""
root = Tk()
img0 = BitmapImage(data=BITMAP0, foreground='lime', background='black')
img1 = BitmapImage(data=BITMAP1, foreground='lime', background='black')
label = Label(root, image=(img0, 'active', img1))
label.pack()
ラベルは、マウスがその上を通過すると「アクティブ」です。したがって、表示された桁は、マウスがその上を移動すると、0から1に切り替わるはずです。しかし、それは動作しません。 ヘルプがありますか? Python 3.5.1/Windows Vista
ttkウィジェットの状態の一覧は次のとおりです。http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-map.html ttk.Labelウィジェットのイメージオプションのドキュメントは次のとおりです。ここ:http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/ttk-Label.html – Jal
@Jal私は "信頼できる完全な情報源"を書いていたはずです。しかし、あなたのために ''アクティブ ''の代わりに ''ホバー ''を使ったのですか? – Goyo
いいえ、 'hoover'は有効なttkウィジェット状態ではないようです。_tkinter.TclError:無効な状態名hooverです。 'label.bind(" "、入力)'と 'label.bind(" "、leave)'を使って私の問題を回避する方法がありますが、 'Label(root、image =(img0、 'active'、img1)) '期待どおりに動作しません。あなたの興味に感謝します。 –
Jal