Widget, Canvas and Container Gallery

Containers

Containers are ways of grouping multiple widgets.

Containers can be nested within other containers to achieve complex layouts.

Container Code/Description
tic_window(…)
Create a top level window
tic_col(A, B, C)
Layout objects in column
tic_row(A, B, C)
Layout objects rowwise
tic_frame(…)
Invisible container. Useful for advanced users who want to customize layout
tic_labelframe(…)
Frame with a a label and usually visible outline
tic_notebook(A, B, C)
Tabbed display
tic_panedwindow(A, B, C)
Layout multiple elements which can be resized as panes

Widgets

Widget Code/Description
tic_label(…)
Display text. If you need headings rather than body text, Use style = 'h1' to style = 'h5' for different sized text
tic_button(…)
Clickable button. Available style options: ‘primary’, ‘seconary’, ‘info’, ‘success’, ‘warning’, ‘danger’, ‘light’, ‘dark’
tic_checkbutton(…)
On/off button (default styling)
tic_checkbutton(…)
On/off button with style = 'toggle'
tic_checkbutton(…)
On/off button with style = 'switch'
tic_radiobutton(…)
Groups of mutually exclusion options
tic_menubutton(…)
Button which displays a drop-down menu
tic_canvas(…)
General drawing canvas
tic_spinbox(…)
Choose options
tic_combobox(…)
Choose options
tic_textentry(…)
Single line text entry
tic_textbox(…)
Multipe line text entry
tic_progressbar(…)
Progress bar
tic_slider(…)
Slider

Popups

Popups are windows which are initiated separate from the main UI.

Popup Code/Description
popup_color_picker()
popup_messagebox()
popup_open_file()
popup_save_file()

Canvas

After creating a canvas with tic_canvas(), it can be manipulated with the following commands:

  • Draw on the canvas
    • canvas_line()
    • canvas_text()
    • canvas_rect()
    • canvas_polygon()
    • canvas_oval()
    • canvas_arc()
  • canvas_plot() render a plot to the canvas
  • canvas_clear() clear all objects from the canvas
  • canvas_image() render an image from a file to the canvas
  • canvas_save() save the contents of the canvas to an image file.

The actual canvas in tcl/tk renders structured graphics and it is much more like SVG or PDF than just a simple array of pixels.

The canvas implementation in this package treats the canvas as just a raster object i.e. a rectangular collection of pixels. This made it easier to write this package and keep the API/syntax simple, but it doesn’t unleash the full power of the canvas.

The effort to write a more complete abstraction over the canvas is not currently warranted. Please get in contact if such a facility is important to you.