| tk2widgets {tcltk2} | R Documentation |
A series of widgets you can use in your tk windows/dialog boxes.
tk2button(parent, ...) tk2canvas(parent, ...) tk2checkbutton(parent, ...) tk2combobox(parent, ...) tk2entry(parent, ...) tk2frame(parent, ...) tk2label(parent, ...) tk2labelframe(parent, ...) tk2listbox(parent, ...) tk2mclistbox(parent, ...) tk2menu(parent, ...) tk2menubutton(parent, ...) tk2message(parent, ...) tk2notebook(parent, ...) tk2panedwindow(parent, ...) tk2progress(parent, ...) tk2radiobutton(parent, ...) tk2scale(parent, ...) tk2scrollbar(parent, ...) tk2separator(parent, ...) tk2spinbox(parent, ...) tk2table(parent, ...) tk2text(parent, ...) tk2tree(parent, ...) tk2treeview(parent, ...)
parent |
The parent window |
... |
Further arguments passed to the widget |
The reference to the created widget.
Most of these widgets comes from the tile (currently 0.4) library
Philippe Grosjean
## Not run:
## These cannot be run by examples() but should be OK when pasted
## into an interactive R session with the tcltk package loaded
### A tk2notebook example
tt2 <- tktoplevel()
nb <- tk2notebook(tt2)
tcli1 <- tk2label(nb, text = "Nothing here.")
tkadd(nb, tcli1, text = "Test")
tcli2 <- tk2frame(nb)
but <- tk2button(tcli2, text = "Click me", command = function() tkdestroy(tt2))
tkgrid(but)
tkadd(nb, tcli2, text = "Button")
tkselect(nb, tcli2)
tkgrid(nb)
## A simple tk2panedwindow example
tt2 <- tktoplevel()
pw <- tk2panedwindow(tt2, orient = "vertical")
lpw.1 <- tk2label(pw, text = "Panel 1")
lpw.2 <- tk2label(pw, text = "Panel2")
tkadd(pw, lpw.1, minsize = 100)
tkadd(pw, lpw.2, minsize = 70)
but <- tk2button(lpw.2, text = "OK", width = 10,
command = function() tkdestroy(tt2))
tkgrid(but)
tkpack(pw, fill = "both", expand = "yes")
# Resize the window and move the panel separator with the mouse
## A tk2combobox example
tt2 <- tktoplevel()
cb <- tk2combobox(tt2)
tkgrid(cb)
# Fill the combobox list
fruits <- c("Apple", "Orange", "Banana", "Pear")
# TO DO: change this!!!
#for (i in (1:4))
# tk2listinsert(cb, "end", fruits[i])
tkinsert(cb, "end", "pear")
#tkconfigure(cb, value = "Pear") # Set the current value for the combobox
# or better: link it to a variable
Fruit <- tclVar("Pear")
tkconfigure(cb, textvariable = Fruit)
# Create a button to get the content of the combobox
but <- tk2button(tt2, text = "OK", width = 10,
command = function() {tkdestroy(tt2); cat(tclvalue(Fruit), "\n")})
tkgrid(but)
### An example of a tk2spinbox widget
tt2 <- tktoplevel()
tspin <- tk2spinbox(tt2, relief = "groove", from = 2, to = 20, increment = 2)
tkgrid(tspin)
#tdial <- tk2dial(tt2, from = 0, to = 20, resolution = 0.5, width = 70,
# tickinterval = 2)
#tkgrid(tdial)
tbut <- tk2button(tt2, text = "OK", width = 10,
command = function() tkdestroy(tt2))
tkgrid(tbut)
## A tk2mclistbox example
tt2 <- tktoplevel()
mlb <- tk2mclistbox(tt2, width = 55, resizablecolumns = TRUE)
# Define the columns
tk2column(mlb, "add", "name", label = "First name", width = 20)
tk2column(mlb, "add", "lastname", label = "Last name", width = 20)
tk2column(mlb, "add", "org", label = "Organisation", width = 15)
tkgrid(mlb)
# Fill the multicolumn list (we can use a vector, or a matrix of character strings)
item1 <- c("Bryan", "Oackley", "ChannelPoint")
items <- matrix(c("John", "Ousterhout", "Scriptics",
"Steve", "Miller", "TclTk inc."), ncol = 3, byrow = TRUE)
tk2insert.multi(mlb, "end", item1)
tk2insert.multi(mlb, "end", items)
#### TO DO: bind events
# Ex: .listbox label bind date <ButtonPress-1> "sortByDate
# See the example.tcl in .\libs\mclistbox1.02 for a more complex example
# Create a button to close the dialog box
but <- tk2button(tt2, text = "OK", width = 10,
command = function() tkdestroy(tt2))
tkgrid(but)
### A simple tk2table example
myRarray <- c("Animal", "\"sphinx moth\"", "oyster",
"Type", "insect", "mollusk")
dim(myRarray) <- c(3, 2)
for (i in (0:2))
for (j in (0:1))
.Tcl(paste("set tclarray(", i, ",", j, ") ", myRarray[i+1, j+1], sep = ""))
tt2 <- tktoplevel()
table1 <- tk2table(tt2, variable = "tclarray", rows = "3",
cols = "2", titlerows = "1", selectmode = "extended", colwidth = "25",
background = "white")
tkpack(table1)
## End(Not run)