Tkinter入门
前页 |  | 后页

# 第6章. 组件风格

所有Tkinter标准组件都提供了一个基本选项"styling",它允许你修改每个组件的颜色,字体和其他可视外观.

# 颜色

多数组件允许你使用 `background` 和 `foreground` 选项指定它的文字和背景颜色. 指定一个颜色,你可以直接使用颜色名,或者明确的使用RGB颜色值.

## 颜色名

Tkinter 包含了一个色彩库,它可将颜色名转换为相应的RGB值, 这个库中常用的名字例如 `Red, Green, Blue, Yellow` , 和 `LightBlue,` 另外还有些怪异的名字,就象 `Moccasin, PeachPuff` , 等等.

在一个 X window 系统, 颜色名被定义在X 服务器上, 你可以使用本地一个文件名 `xrgb.txt` 它包含了一个颜色名列表和相应的RGB值.在Windows和Macintosh系统下,颜色名列表被建立在Tk内.

在Windows下,你也可以使用Windows牙色(这些可以被用户通过控制面板改变):

> `SystemActiveBorder, SystemActiveCaption, SystemAppWorkspace, SystemBackground, SystemButtonFace, SystemButtonHighlight, SystemButtonShadow, SystemButtonText, SystemCaptionText, SystemDisabledText, SystemHighlight, SystemHighlightText, SystemInactiveBorder, SystemInactiveCaption, SystemInactiveCaptionText, SystemMenu, SystemMenuText, SystemScrollbar, SystemWindow, SystemWindowFrame, SystemWindowText.`

在 Macintosh 下, 可以使用下面的颜色名:

> `SystemButtonFace, SystemButtonFrame, SystemButtonText, SystemHighlight, SystemHighlightText, SystemMenu, SystemMenuActive, SystemMenuActiveText, SystemMenuDisabled, SystemMenuText, SystemWindowBody.`

颜色名是大小写敏感的,多数(不是全部)颜色名单词之间有无空格同样有效. 例如 "lightblue", "light blue", and "Light Blue" 都是相同的颜色名.

## RGB 规范

如果你需要明确地指定一个颜色, 你可以使用一个下面格式的字符串:

#RRGGBB

RR, GG, BB 分别是用十六进制表示的红,绿,蓝的颜色值, 下面的例子展示给你转化一个三元色为Tk色彩规范的过程:

     tk_rgb = "#%02x%02x%02x" % (128, 192, 200)

Tk 也支持also supports the forms " `#RGB` " and " `#RRRRGGGGBBBB` " to specify each value with 16 and 65536 levels, respectively.

你也可以使用 `winfo_rgb` 组件方法来转换一个色彩字符串(色彩名和一个RGB规范) 为一个三元值:

      rgb = widget.winfo_rgb("red")
      red, green, blue = rgb[0]/256, rgb[1]/256, rgb[2]/256

注意 `winfo_rgb` 返回16位色彩的RGB值, ranging from 0 to 65535. To map them into the more common 0-255 range, you must divide each value by 256 (or shift them 8 bits to the right).

前页 | 首页 | 后页
向后兼容 | 向上 | 字体