如何通过hwtk::openfileentry自动设置TCL变量获取GUI选中文件名
解决自动获取hwtk::openfileentry选中文件名的问题
要实现选中文件后自动更新filename变量,你可以利用hwtk::openfileentry的-command选项,绑定一个过程来自动获取并设置文件名。修改后的代码如下:
set win .window catch {destroy $win} toplevel $win -class TopClass wm title $win "Tools" wm geometry $win 420x200+100+150 wm resizable $win 1 1 wm deiconify $win # 声明全局变量存储选中的文件名 global filename set filename "" # 定义自动更新文件名的过程 proc update_filename {widget} { global filename set filename [$widget get] # 可选:添加调试输出,验证变量是否更新 # puts "当前选中文件: $filename" } label $win.01 -text "openmodel" place $win.01 -x 0 -y 10 -width 130 -height 32 # 创建openfileentry组件,绑定选择后的回调命令 hwtk::openfileentry $win.op1 -command [list update_filename $win.op1] place $win.op1 -x 135 -y 10 -width 250 -height 32
关键说明:
- 通过
global filename声明全局变量,让过程能修改外部的filename值 update_filename过程负责从组件中获取当前选中的文件名,并赋值给filename-command [list update_filename $win.op1]指定当用户通过组件选中文件时,自动调用update_filename过程,传入组件自身的路径作为参数
这样每次你选中文件后,filename变量会自动更新为当前选中的文件名,无需手动执行set filename [$win.op1 get]。
内容的提问来源于stack exchange,提问作者Seçkin Uslu
相关产品推荐
相关产品推荐

