[R-gui] tcltk: help with tkmenubutton
Alberto Vieira Ferreira Monteiro
albmont at centroin.com.br
Wed Oct 24 02:33:30 CEST 2007
Keith Satterley wrote:
>
> You might find James Wettenhall's TclTk Examples useful. They are at:
>
> http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/
>
I already did; but there's a problem - see the code below. There's
no way I can place the "Help" menu in the right of the screen,
which I can do using tkmenubutton (but then I can't add commands).
Alberto Monteiro
#
# Translation of menu example from...
# http://gd.tuwien.ac.at/languages/perl/Hajji-Perlkurs/part4/tkperl.html
# ... but using the techniques from...
# http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/menus.html
#
library(tcltk)
# create a main window
mw <- tktoplevel()
# a menu consists of a horizontal menubar,
# with associated submenus
##### first create the horizontal menubar
mb <- tkmenu(mw)
tkconfigure(mw, menu = mb)
# now put in the menubar some menubuttons
# (this works in Perl/Tk but not in R - using tkmenu)
m_file <- tkmenu(mb)
m_edit <- tkmenu(mb)
m_opts <- tkmenu(mb)
m_help <- tkmenu(mb)
# pack everything from the menubar
# (in Perl/Tk but not in R)
#### now create the submenus
# the file menus
tkadd(m_file, "command", label = "New", command = function() { file("new") })
tkadd(m_file, "command", label = "Open", command = function() {
file("open") })
#### continue the creation of the horizontal menubar
tkadd(mb, "cascade", label = "File", menu = m_file)
tkadd(mb, "cascade", label = "Edit", menu = m_edit)
tkadd(mb, "cascade", label = "Options", menu = m_opts)
tkadd(mb, "cascade", label = "Help", menu = m_help) # there's no way to place
in the right side
##### finally, call the main event collecting loop
# MainLoop;
tkfocus(mw)
#### the callbacks
file <- function(arg)
{
cat("file: ", arg, "\n", sep="")
}
More information about the R-SIG-GUI
mailing list