>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....
)

标准选项

您可以指定一个或多个用逗号分隔的标准选项。

  • Foundry
  • Family
  • Weight
  • Slant
  • Swidth
  • Pixel
  • Point
  • Xres
  • Yres
  • Space
  • Avgwidth
  • Registry
  • Encoding

Ruby/Tk 颜色

有多种方法可以指定颜色。 完整的详细信息可以在 Ruby/Tk colors 命令参考

该系统将为大多数事物提供正确的颜色。 与字体一样,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 font

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

这将产生以下结果 −

Ruby/Tk Images

Tk 的图像实际上非常强大和复杂,并提供了多种检查和修改图像的方法。 您可以从Tk 图像命令参考和< a href="https://www.tcl.tk/man/tcl8.5/TkCmd/photo.html" target="_blank">Tk 照片命令参考。

❮ Ruby Tk 指南