Text windows in R TclTk

There is a Pop-up Menu example which uses a text widget, described on the menus webpage.

An editable text window

require(tcltk)
tt  <- tktoplevel()
txt <- tktext(tt)
tkgrid(txt)
tkmark.set(txt,"insert","0.0")
tkfocus(txt)


A non-editable text windowt

require(tcltk)
tt  <- tktoplevel()
txt <- tktext(tt,bg="white",font="courier")
tkgrid(txt)
tkconfigure(txt, state="disabled")
tkinsert(txt,"end","Hello, world!")
tkfocus(txt)


A text window with a vertical scroll bar

require(tcltk)
tt  <- tktoplevel()
scr <- tkscrollbar(tt, repeatinterval=5,
                       command=function(...)tkyview(txt,...))
txt <- tktext(tt,bg="white",font="courier",yscrollcommand=function(...)tkset(scr,...))
tkgrid(txt,scr)
tkgrid.configure(scr,sticky="ns")
for (i in (1:100)) tkinsert(txt,"end",paste(i,"^ 2 =",i*i,"\n"))
tkconfigure(txt, state="disabled")
tkfocus(txt)


Scrolling down reveals the remaining contents of the text widget:

A text window with horizontal and vertical scrollbars (and no word wrap)

require(tcltk)
tt  <- tktoplevel()
xscr <- tkscrollbar(tt, repeatinterval=5,orient="horizontal",
                       command=function(...)tkxview(txt,...))
yscr <- tkscrollbar(tt, repeatinterval=5,
                       command=function(...)tkyview(txt,...))
txt <- tktext(tt,bg="white",font="courier",
    xscrollcommand=function(...)tkset(xscr,...),yscrollcommand=function(...)tkset(yscr,...),
    wrap="none")
tkgrid(txt,yscr)
tkgrid(xscr)
tkgrid.configure(yscr,sticky="ns")
tkgrid.configure(xscr,sticky="ew")
for (i in (1:100)) tkinsert(txt,"end",paste(i,"^ 2 =",i*i,", "))
tkconfigure(txt, state="disabled")
tkfocus(txt)


Scrolling across reveals the remaining contents of the text widget: