- 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 小部件,例如标签、文本和画布,允许您指定用于显示文本的字体,通常通过font 配置选项。
已经存在一个默认字体列表,可用于不同的需求:
序号 | 字体名称和描述 |
---|---|
1 | TkDefaultFont 所有未另行指定 GUI 项目的默认字体。 |
2 | TkTextFont 用于输入小部件、列表框等。 |
3 | TkFixedFont 标准等宽字体。 |
4 | TkMenuFont 用于菜单项的字体。 |
5 | TkHeadingFont 通常用于列表和表格中列标题的字体。 |
6 | TkCaptionFont 窗口和对话框标题栏的字体。 |
7 | TkSmallCaptionFont 子窗口或工具对话框的较小标题字体 |
8 | TkIconFont 图标标题的字体。 |
9 | TkTooltipFont 工具提示的字体。 |
您可以按照以下方式使用这些字体:
TkLabel.new(root) {text 'Attention!'; font TkCaptionFont}
如果您想使用不同的字体系列和字体类型创建新的字体,则可以使用以下简单的语法创建字体:
TkFont.new ( .....Standard Options.... )
标准选项
您可以指定一个或多个以逗号分隔的标准选项。
- 铸造厂
- 字体系列
- 粗细
- 倾斜
- 字符宽度
- 像素
- 磅
- X分辨率
- Y分辨率
- 间距
- 平均宽度
- 注册表
- 编码
Ruby/Tk 颜色
有多种方法可以指定颜色。完整的详细信息可以在颜色命令参考中找到。
系统将为大多数内容提供正确的颜色。与字体一样,Mac 和 Windows 都指定了大量特定于系统的颜色名称(参见参考)。
您还可以使用 RGB 指定字体,就像在 HTML 中一样,例如“#3FF”或“#FF016A”。
最后,Tk 识别 X11 定义的颜色名称集;通常不使用这些名称,除非是一些非常常见的名称,例如“red”、“black”等。
对于主题化 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 的图像实际上非常强大和复杂,并提供各种检查和修改图像的方法。您可以从图像命令参考和照片命令参考中了解更多信息。