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로 전환됩니다. 그러나 그것은 효과가 없습니다. 도움이 되었습니까? 파이썬 3.5.1/윈도우 비스타
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