我有一个 GUI,里面有一张照片图像。窗口开始时的大小与 native 图像完全相同。我想要的是当用户调整窗口大小时图像调整自身大小以适应窗口。根据“photo”命令的文档,我尝试了以下操作。但这似乎不起作用。图像始终保持相同的大小,调整窗口大小只是隐藏其中的一部分,而不是调整它的大小。我不明白 -shrink 选项的功能吗?
package require Tk
image create photo previewraw -file preview.pnm
image create photo preview -file preview.pnm
ttk::frame .c
ttk::label .c.preview -image preview
grid .c -column 0 -row 0 -sticky nwes
grid .c.preview -column 0 -row 0
grid columnconfigure . 0 -weight 1
grid rowconfigure . 0 -weight 1
grid columnconfigure .c 0 -weight 1
grid rowconfigure .c 0 -weight 1
bind .c.preview <Configure> {
preview copy previewraw -to 0 0 %w %h -shrink
}
最佳答案
答案是:
package require Tk
image create photo preview -file preview.pnm
ttk::frame .c
ttk::label .c.preview -image preview
grid .c -column 0 -row 0 -sticky nwes
grid .c.preview -column 0 -row 0
grid columnconfigure . 0 -weight 1
grid rowconfigure . 0 -weight 1
grid columnconfigure .c 0 -weight 1
grid rowconfigure .c 0 -weight 1
bind .c.preview <Configure> {
exec convert preview.pnm -resize %wx%h -background lightgray -gravity center -extent %wx%h newfile
preview read newfile -shrink
}
关于tk-toolkit - 如何使用tk中的窗口调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21915622/