将tklabel更改为由R中的tkbutton函数打开的文件名

时间:2015-09-17 13:26:29

标签: r tcl tk

我正在研究在R中创建一个可以打开文件并在同一个小部件中显示该文件特征的小部件。我希望在加载文件时自动更新此信息。这意味着我有可以打开文件的按钮的以下功能:

getfile <- function() {
  name <- tclvalue(tkgetOpenFile(
    filetypes = "{{raster files} {.tiff .tif .img .grd}} {{All files} *}"))

  if (name == "") return;
  Sys.sleep(10)
  assign("Filename", name, envir = .GlobalEnv)
  tclvalue(Filename) <- name
}

打开此文件的按钮的功能是:

button.widget <- tkbutton(tt, text = "Select File", command = getfile)
  tkgrid(button.widget, pady=10, padx=10, columnspan=3)

标签由:

给出
  Filename <- tclVar("")
  label.widget <- tklabel(tt, text=tclvalue(Filename))
  tkgrid(label.widget, row=2, column=0)

但是,当我创建小部件时,一切正常,文件名已更改,并且可以打开文件。但标签中的文字没有改变。我怎样才能解决这个问题?是否有可以在关闭OpenFile对话框窗口时运行的事件?

1 个答案:

答案 0 :(得分:1)

尝试:

  tklabel (tt, textvariable=Filename)

有这个example,他首先将标签配置为文本,然后使用textvariable重新配置它。但是你最初应该可以将它配置为textvariable。警告:我不知道R。

另一种选择是:

  tkconfigure(label.widget,text=tclvalue(Filename))

在getfile()函数的末尾。