본문으로 바로가기

Tk의 테마를 변경하자 tile

category 카테고리 없음 2024. 5. 21. 15:14

홈페이지: http://tktable.sourceforge.net/tile/

기존 Tk로 제작된 애플리케이션은 Tk스러운(?) 스타일을 벗어날 수 없었습니다. 이는 많은 사용자로부터 단점으로 지적되어 왔습니다. 다행스럽게도 O/S의 네이티브(Native) 스타일을 그대로 Tk 애플리케이션에 적용할 수 있는 tile 패키지가 등장하였습니다. tile은 Tcl8.4 이상에서 사용할 수 있으며, 8.5 버전을 위한 멋진 시도입니다. 표준으로 아래의 스타일(테마)이 준비되어 있으며, 플랫폼에 따라 지원하지 못하는 스타일도 있습니다.

  • classic: Motif 스타일
  • default: X11 스타일
  • alt: GTK+의 기본 스타일
  • clam: Gnome 스타일
  • winnative: Windows 스타일
  • xpnative: Windows XP 스타일
  • step: NeXTStep 스타일
  • aqua: MacOS X 스타일

이 밖에도 사용자들로부터 직접 확장 가능하며, tile의 데모에는 blue 테마가 기본으로 첨부되어 있습니다.

스크린 샷

Windows XP 스타일을 선택하면, 둥글둥글스러운 위젯으로 변경됩니다. 이것만으로도 테마를 변경할 가치가 있는 것 같습니다.

사용 방법

스타일을 적용하기 위해서는 tile::setTheme로 스타일을 지정합니다. 사용 가능한 스타일은 tile::availableThemes로 알 수 있습니다. 현재 사용 중인 스타일은 ::tile::currentTheme 변수로 얻을 수 있습니다.

package require tile
namespace import -force tile::*
 
tile::setTheme xpnative
 
pack [button .btn -text Button]
pack [listbox .lst]
 
foreach name [tile::availableThemes ] {
        .lst insert end $name
}
 
.lst selection set [lsearch [tile::availableThemes ] $::tile::currentTheme]