2016-06-10 100 views
0

The image showing the problem I have由於Tcl-tk中的窗口大小,隱藏確定按鈕

我遇到以下問題,如上圖所示。 實際上,當我使用我的腳本時,「確定」按鈕顯示,而不是在其他時候使用腳本。如果我讓窗口變大,使用我的鼠標就會顯示出來(因爲窗口很小,以前它是隱藏的)。我不明白爲什麼和我在互聯網上找不到真正有用的東西。 (改變像padxpady這樣的值不起作用。) 必須有一個參數來調整一般的窗口大小,但是我找不到它。 我的第二個問題是,如果字符串的長度與示例中一樣長,將顯示從左向右滾動的滾動條。我想顯示完整的字符串。可悲的是,我也不知道如何解決這個問題。

有什麼關於它的嗎?

我的代碼如下:

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 
+0

應該有一些東西用於測量特定字體中某個字符串的寬度 - 在Tcl/Tk中稱爲「font measure」 - 但我不知道它在R中調用的是什麼。這將有助於工作你想要什麼窗口的寬度。 –

+0

謝謝你的幫助;我會盡力找到相應的參數。 –

+1

我發現了一些能夠同時解決我的兩個問題的東西;如果有人遇到這個問題。有一個參數我不知道我剛剛在示例代碼中找到。在tk2label()中,你可以指定寬度。事實上,它改變爲以下 'tk2label(WIN2,文本= 「Veuillez selectionner LES變量appartenant在CE集團」,寬度=一些號碼, wraplength = 200,對齊= 「左」)' 固定的問題與足夠大的數量。我應該找到自己,對此表示歉意。 –

回答

1

你想要做的是:(1)修復列表框的高度和寬度是什麼,和 (2)修復窗口的高度和寬度,使其足夠大以允許「確定」按鈕始終顯示。您也可以修復窗口,使其無法調整大小。

相關問題