 
- Ruby基础知识
- Ruby - 主页
- Ruby - 概述
- Ruby - 环境设置
- Ruby - 语法
- Ruby - 类和对象
- Ruby - 变量
- Ruby - 运算符
- Ruby - 评论
- Ruby - IF...ELSE
- Ruby - 循环
- Ruby - 方法
- Ruby - 块
- Ruby - 模块
- Ruby - 字符串
- Ruby - 数组
- Ruby - 哈希
- Ruby - 日期和时间
- Ruby - 范围
- Ruby - 迭代器
- Ruby - 文件 I/O
- Ruby - 例外
Ruby/TK - 字体、颜色和图像
Ruby/Tk 字体
一些 Tk 小部件(例如标签、文本和画布)允许您指定用于显示文本的字体(通常通过字体配置选项)。
已经有一个默认的字体列表,可用于不同的要求 -
| 先生。 | 字体名称和描述 | 
|---|---|
| 1 | Tk默认字体 所有未另行指定的 GUI 项目的默认值。 | 
| 2 | Tk文本字体 用于条目小部件、列表框等。 | 
| 3 | Tk固定字体 标准的固定宽度字体。 | 
| 4 | Tk菜单字体 用于菜单项的字体。 | 
| 5 | Tk标题字体 通常用于列表和表格中的列标题的字体。 | 
| 6 | Tk字幕字体 窗口和对话框标题栏的字体。 | 
| 7 | Tk小标题字体 子窗口或工具对话框的较小标题字体 | 
| 8 | Tk图标字体 图标标题的字体。 | 
| 9 | Tk工具提示字体 工具提示字体。 | 
您可以通过以下方式使用任何这些字体 -
TkLabel.new(root) {text 'Attention!'; font TkCaptionFont}
如果您愿意使用不同的系列和字体类型创建新字体,那么这里有一个创建字体的简单语法 -
TkFont.new ( .....Standard Options.... )
标准选项
您可以指定一个或多个标准选项,并用逗号分隔。
- 铸造厂
- 家庭
- 重量
- 倾斜
- 宽度
- 像素
- 观点
- Xres
- 伊雷斯
- 空间
- 平均宽度
- 登记处
- 编码
红宝石/Tk 颜色
有多种方法可以指定颜色。完整的详细信息可以在颜色命令参考中找到。
该系统将为大多数事物提供正确的颜色。与字体一样,Mac 和 Windows 都指定了大量特定于系统的颜色名称(请参阅参考资料)。
您还可以通过 RGB 指定字体,就像在 HTML 中一样,例如“#3FF”或“#FF016A”。
最后,Tk 识别 X11 定义的颜色名称集合;通常不使用这些,除了非常常见的,例如“红色”,“黑色”等。
对于主题 Tk 小部件,颜色通常用于定义应用于小部件的样式,而不是直接将颜色应用于小部件。
例子
require 'tk'
$resultsVar = TkVariable.new
root = TkRoot.new
root.title = "Window"
myFont = TkFont.new("family" => 'Helvetica', "size" => 20, "weight" => 'bold')
Lbl = TkLabel.new(root) do
   textvariable
   borderwidth 5
   font myFont
   foreground  "red"
   relief      "groove"
   pack("side" => "right",  "padx"=> "50", "pady"=> "50")
end
Lbl['textvariable'] = $resultsVar
$resultsVar.value = 'New value to display'
Tk.mainloop
这将产生以下结果 -
 
Ruby/Tk 图像
Ruby/Tk 包括对 GIF 和 PPM/PNM 图像的支持。然而,有一个名为“Img”的 Tk 扩展库,它增加了对许多其他扩展库的支持:BMP、XBM、XPM、PNG、JPEG、TIFF 等。虽然不直接包含在 Tk 核心中,但 Img 通常包含在其他封装中分布。
在这里,我们将了解如何使用图像的基础知识,例如在标签或按钮中显示它们。我们通常从磁盘上的文件创建一个图像对象。
例子
require 'tk'
$resultsVar = TkVariable.new
root = TkRoot.new
root.title = "Window"
image = TkPhotoImage.new
image.file = "zara.gif"
label = TkLabel.new(root) 
label.image = image
label.place('height' => image.height, 'width' => image.width, 'x' => 10, 'y' => 10)
Tk.mainloop
这将产生以下结果 -
 
Tk 的图像实际上非常强大和复杂,并提供了多种检查和修改图像的方法。您可以从图像命令参考和照片命令参考中了解更多信息。