TclTk8.5のTtk Widget

Ttk Widgetとは?

Tcl8.5から各種Ttk Widgetが追加されました。
Ttk Widgetを使うとテーマの変更でGUIの見栄えを切り替えることができます。
従来はTile packageで行っていましたが、Tk8.5 Coreに取り込まれました。
下記のデモ画面はXpNativeのGUIを表示した例です。(Widnows版のデフォルト)

ActiveTcl 8.5.0.0 のデモ

Tcl/Tk8.5のTkとTtk Widget早見表

Tcl/Tk 8.5のTk WidgetとTtk Widgetの早見表です。
Widgetが1対1の対応になっていないので注意してください。
またTtk Widgetには見栄えを調整するオプションがないので
単純にTk Widgetの置き換えにならない点に注意が必要です。

WidgetTkTtk
buttontk::buttonttk::button
canvastk::canvasN/A
checkbuttontk::checkbuttonttk::checkbutton
comboboxN/Attk::combobox
entrytk::entryttk::entry
frametk::framettk::frame
labeltk::labelttk::label
labelframetk::labelframettk::labelframe
listboxtk::listboxN/A
menutk::menuN/A
menubuttontk::menubuttonttk::menubutton
messagetk::messageN/A
notebookN/Attk::notebook
panedwindowtk::panedwindowttk::panedwindow
progressbarN/Attk::progressbar
radiobuttontk::radiobuttonttk::radiobutton
scaletk::scalettk::scale
scrollbartk::scrollbarttk::scrollbar
separatorN/Attk::separator
sizegripN/Attk::sizegrip
spinboxspinboxttk::spinbox
treeviewN/Attk::treeview

注意事項

namespace import -force ttk::*
のようにttkの強制インポートができないので、
ttk::buttonのようにnamesapceを明示的に指定しなければならない。
単純にTk Widgetの置き換えにならないということで、
既存のスクリプトをTtk Widgetに置き換えるのはかなり難しい。

参考文献