tk2widgets              package:tcltk2              R Documentation

_A _t_h_e_m_e_d _s_e_r_i_e_s _o_f _t_k _w_i_d_g_e_t

_D_e_s_c_r_i_p_t_i_o_n:

     A series of widgets you can use in your tk windows/dialog boxes.

_U_s_a_g_e:

       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, ...)

_A_r_g_u_m_e_n_t_s:

  parent: The parent window 

     ...: Further arguments passed to the widget 

_V_a_l_u_e:

     The reference to the created widget.

_N_o_t_e:

     Most of these widgets comes from the tile (currently 0.4) library

_A_u_t_h_o_r(_s):

     Philippe Grosjean

_S_e_e _A_l_s_o:

     'tk2theme', 'tk2tip', 'tk2commands'

_E_x_a_m_p_l_e_s:

       ## 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)

