由于 Tcl-tk 中的 window 大小,隐藏了确定按钮
Hidden OK button because of window size in Tcl-tk
我有以下问题,如上图所述。
实际上,有时当我使用我的脚本时 "OK" 按钮会显示,而在其他时候当我使用脚本时则不会。如果我自己把 window 变大,然后使用我的鼠标它就会显示出来(它以前是隐藏的,因为 window 太小了)。我不明白为什么,我在互联网上找不到任何真正有用的东西。 (更改 padx
和 pady
等值无效。)
必须有一个参数来调整一般 window 大小,但我找不到它。
我的第二个问题是,如果字符串像示例中那样长;将显示从左向右滚动的滚动条。我想展示完整的字符串。可悲的是,我也不知道如何解决这个问题。
有什么办法吗?
我的代码如下:
noms_var_manif
是一个字符向量
win2 <- tktoplevel()
tkgrid(tk2label(win2, text = "Veuillez selectionner les variables appartenant à ce bloc",
wraplength = 200, justify = "left"),
padx = 10, pady = c(15, 5), sticky = "w", columnspan = 2)
# Note that 'selection' uses indices starting at 1, like R and not Tcl/Tk!
win2$env$lst <- tk2listbox(win2,values=noms_var_manif, height = 10, selectmode = "extended")
tkgrid(win2$env$lst, padx = 100, pady = c(10, 20), sticky = "ew", columnspan = 2)
onOK <- function() {
select_var_bloc<- noms_var_manif[as.numeric(tkcurselection(win2$env$lst)) + 1]
tkdestroy(win2)
if (!length(select_var_bloc)) {
msg <- "Il n'y a donc aucune variable dans ce bloc?"
} else {
msg <- paste0("Vous avez choisi les variables suivantes: ",
paste(select_var_bloc, collapse = ", "))
}
tkmessageBox(message = msg)
win2$env$select_var_bloc= select_var_bloc
tkdestroy(win2)
}
win2$env$butOK <-tk2button(win2, text = "OK ", width = -6, command = onOK)
tkgrid(win2$env$butOK, padx = 10, pady = c(10, 15))
tkwait.window(win2)
select_var_bloc=win2$env$select_var_bloc
您要做的是 (1) 固定列表框的高度和宽度,以及
(2) 固定 window 的高度和宽度,使其足够大以允许 OK 按钮始终显示。您还可以修复 window,使其无法调整大小。
我有以下问题,如上图所述。
实际上,有时当我使用我的脚本时 "OK" 按钮会显示,而在其他时候当我使用脚本时则不会。如果我自己把 window 变大,然后使用我的鼠标它就会显示出来(它以前是隐藏的,因为 window 太小了)。我不明白为什么,我在互联网上找不到任何真正有用的东西。 (更改 padx
和 pady
等值无效。)
必须有一个参数来调整一般 window 大小,但我找不到它。
我的第二个问题是,如果字符串像示例中那样长;将显示从左向右滚动的滚动条。我想展示完整的字符串。可悲的是,我也不知道如何解决这个问题。
有什么办法吗?
我的代码如下:
noms_var_manif
是一个字符向量
win2 <- tktoplevel()
tkgrid(tk2label(win2, text = "Veuillez selectionner les variables appartenant à ce bloc",
wraplength = 200, justify = "left"),
padx = 10, pady = c(15, 5), sticky = "w", columnspan = 2)
# Note that 'selection' uses indices starting at 1, like R and not Tcl/Tk!
win2$env$lst <- tk2listbox(win2,values=noms_var_manif, height = 10, selectmode = "extended")
tkgrid(win2$env$lst, padx = 100, pady = c(10, 20), sticky = "ew", columnspan = 2)
onOK <- function() {
select_var_bloc<- noms_var_manif[as.numeric(tkcurselection(win2$env$lst)) + 1]
tkdestroy(win2)
if (!length(select_var_bloc)) {
msg <- "Il n'y a donc aucune variable dans ce bloc?"
} else {
msg <- paste0("Vous avez choisi les variables suivantes: ",
paste(select_var_bloc, collapse = ", "))
}
tkmessageBox(message = msg)
win2$env$select_var_bloc= select_var_bloc
tkdestroy(win2)
}
win2$env$butOK <-tk2button(win2, text = "OK ", width = -6, command = onOK)
tkgrid(win2$env$butOK, padx = 10, pady = c(10, 15))
tkwait.window(win2)
select_var_bloc=win2$env$select_var_bloc
您要做的是 (1) 固定列表框的高度和宽度,以及 (2) 固定 window 的高度和宽度,使其足够大以允许 OK 按钮始终显示。您还可以修复 window,使其无法调整大小。