是否可以在Tk / Tcl标签内放置图案?

时间:2013-01-09 11:39:33

标签: tcl tk

我想要一个包含颜色模板的标签,而不仅仅是纯色。

我的意思是标签的背景是颜色的模板,而不仅仅是纯色,例如,交替颜色的对角线图案,如MS Office中图案填充的选项:

enter image description here

我不希望它是我想要的模式的图片,因为我希望它重新调整大小,因为小部件重新调整大小并使用不同长度和大小的标签。

有没有办法用tk / tcl做同样的事情?

2 个答案:

答案 0 :(得分:1)

标签可以包含图片或文字字符串。这就对了。但是,您可以控制图像以响应UI事件,例如Map或Unmap(显示或隐藏)或调整大小。因此,我建议您根据需要生成图像,并在调整大小时重新生成它们。

答案 1 :(得分: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上看到如何在画布中平铺图像(将画布调整大小)。