我正在寻找某种方法来禁止用户使用 tcltk 和 R 更改文本框中的值。
这是我所做的:我想禁止用户更改第一个框中的值。
library(tcltk)
tt <- tktoplevel()
v <- tclVar("32 200 700")
entry.1 <-tkentry(tt, width = "50", textvariable = v)
tkbind(entry.1, "<Key>", function()tkfocus(entry.2))
tkgrid(entry.1, row=1, column=0)
v2 <- tclVar("")
entry.2 <-tkentry(tt, width = "50", textvariable = v2)
tkgrid(entry.2, row=2, column=0)
它似乎有效,但键的 native 操作是在绑定(bind)操作之前完成的。
如何解决这个问题?
我不想使用tklabel
,因为它无法为文本添加边框。
最佳答案
这是普通的 Tcl,而不是 R 语法,但您希望将小部件的状态设置为只读
。这将禁止用户修改该值,但它仍然尊重文本变量的更改。您不需要绑定(bind)任何东西,用户无法将注意力集中在小部件上。
set value 0
entry .e -textvariable value -state readonly
button .b -text incr -command {incr value}
pack .e .b
关于r - 带有 tcl tk 和 R 的不可编辑框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533977/