GNOCL 可以讓你在 Tcl 使用 Gtk+ 2 library。這個 spec 目前使用 2018/05/10 的 Gnocl-Nightly-Build。
因為版本更替的關係,所以一開始的時候我以為 Label 的 markup 功能是失效的,後來才發現要使用 -useMarkup 來開啟功能。
再來是有個地方造成了一些困擾,就是如果直接按 x 想要離開,會發生無法離開的狀況,這需要使用 -onDestroy 並且指定 exit 才行。
所以下面就是一個修改上面二點以後的範例:
#!/usr/bin/tclsh
package require Gnocl
# create submenu for menu "File" with standard items "New" and
# "Quit" (text, icon and accelerator). 'N', 'Q' respectively,
# are underlined and are used as mnemonics.
set menu [gnocl::menu]
$menu add [gnocl::menuItem -text "%#New" -tooltip "Make new" \
-onClicked {puts "That's new"}]
$menu add [gnocl::menuSeparator]
$menu add [gnocl::menuItem -text "%#Quit" -onClicked exit \
-tooltip "Quit program"]
# create menu "File", 'F' is underlined and used as mnemonic
set file [gnocl::menuItem -text "%__File" -submenu $menu]
# create menu "Help" with item "About"
set menu [gnocl::menu]
$menu add [gnocl::menuItem -text "%__About" \
-tooltip "Show about dialog" \
-onClicked {puts "Mini example (c) 2001 - 2003 P.G. Baum"}]
set help [gnocl::menuItem -text "%__Help" -submenu $menu]
# create toolbar with standard items "Quit" and "New"
set toolBar [gnocl::toolBar -style both]
$toolBar add item -text "%#Quit" -tooltip "Tooltip Quit" \
-onClicked exit
$toolBar add space
$toolBar add item -text "%#New" -tooltip "Tooltip new" \
-onClicked {puts "That's new"}
# create GTK+ application with menu, toolBar, statusbar
# and a label as main widget
set box [gnocl::box -orientation vertical -borderWidth 0 -spacing 0]
set win [gnocl::window -child $box -title "Test Application" -onDestroy { exit } ]
$box add [gnocl::menuBar -children [list $file $help]]
$box add $toolBar
$box add [gnocl::label -useMarkup 1 -text \
{%<<span foreground="blue" size="large">Hello</span>\
<span foreground="red" size="large">World</span>}] -expand 1
$box add [gnocl::statusBar]
# enter GTK+ main loop
gnocl::mainLoop
沒有留言:
張貼留言