2013-01-09 3 views
1

단색이 아닌 색상 템플릿을 포함 할 레이블을 원합니다.Tk/Tcl이있는 라벨 안에 패턴을 넣을 수 있습니까?

의미는 레이블이 단색이 아닌 색상의 템플릿을 배경으로 갖게된다는 것입니다. 예를 들어 MS의 패턴 채우기 옵션과 같이 대각선의 패턴이 교대로 나타납니다. 사무실 : 나는 그것을 재 크기 위젯 재 크기로 서로 다른 길이와 크기의 라벨 작업을 원하기 때문에

enter image description here

내가,이 내가 원하는 패턴의 사진 싶지 않아 .

tk/tcl에서 동일한 작업을 수행 할 수있는 방법이 있습니까?

답변

1

패턴에는 이미지가 필요하지만 라벨에는 이미지 또는 텍스트 만있을 수 있으며 둘 다를 가질 수는 없습니다.

그냥 패턴을 가지고 싶다면, 당신은 절차 적으로이 같은 타일 이미지 복제하여 그것에 대한 이미지를 만들 수 있습니다 : 당신이 패턴을 통해 텍스트를 원한다면

# Set foreground and background colours for your tile 
set fg "#9999ff" 
set bg "#ffffff" 

# create tile data (this will give vertical stripes every 4 pixels) 
set data "$fg $bg $bg $bg" 

# Create the tile image 
image create photo tile 
tile put [list $data] 

# Create the actual image (tile set) 
image create photo tileset 

# Fill the image with the tile to the desired size 
tileset copy tile -to 0 0 200 300 

# Display the tiled image in a label 
label .l -image tileset 
pack .l 

것은, 당신이 사용할 수를 캔버스. 캔버스에서 이미지를 바둑판 식으로 배열하는 방법 (캔버스 크기 조정 고려)은 the Tclers Wiki에 있습니다.

1

레이블에는 이미지 또는 텍스트 문자열이있을 수 있습니다. 그게 다야. 그러나 Map 또는 Unmap (표시 또는 숨기기) 또는 크기 조정과 같은 UI 이벤트에 대한 응답으로 원하는 모든 이미지를 제어 할 수 있습니다. 그래서 당신이 필요에 따라 이미지를 생성하고 크기를 재조정 할 것을 권장합니다.

+0

''이벤트는 위젯의 크기가 조정되거나 부모를 기준으로 재배치 될 때 전송되는 이벤트입니다. (이론적으로는 다른 것들을 위해서 보내질 수도 있지만, Tk는 그들을 만지지 않습니다.) –

+1

예제 코드를 넣으시겠습니까? – SIMEL

관련 문제