首页 > 技术文章 > pysimplegui之元素常用属性

catfeel 2022-01-15 18:35 原文

常用元素参数

您将在几乎所有元素创建调用中看到的一些参数包括:

  • key - 与 window[key]、事件和返回值字典一起使用
  • 工具提示tooltip - 将鼠标悬停在元素上,您将获得包含此文本的弹出窗口
  • size - (width, height) - 通常以字符宽、行高为单位。有时它们意味着像素
  • font - 指定字体系列、大小等。
  • 颜色coleor - 颜色名称或 #RRGGBB 字符串
  • pad - 放置在元素周围的填充量
  • enable_events - 打开元素特定的事件
  • 可见visible - 使元素出现和消失

工具提示

工具提示是文本框,如果您将鼠标悬停在元素顶部,则会在元素旁边弹出。如果您想对窗口的用户更加友善,那么您可以通过将参数设置tooltip为一些文本字符串来为他们创建工具提示。您将需要提供自己的换行符/文本换行。如果您不想手动添加它们,请查看标准库包textwrap

工具提示是真正修饰 GUI 并显示复杂程度的“抛光”项目之一。来吧,给人们留下深刻印象,在你的 GUI 中加入一些工具提示。TOOLTIP_BACKGROUND_COLOR您可以通过设置为您选择的颜色字符串来更改 PySimpleGUI 的 tkinter 版本上工具提示的背景颜色。颜色的默认值为:

TOOLTIP_BACKGROUND_COLOR = "#ffffe0"

尺寸

有关设置默认元素大小的信息在上面的窗口部分中讨论。

指定为元素保留的空间量。对于基于字符的元素,例如文本,它是(# 个字符,# 行)。有时它是像素测量值,例如 Image 元素。有时像 Slider 元素上的混合(字符长 x 像素宽)。

某些元素(文本和按钮)具有on默认的自动大小设置。它将根据内容调整元素的大小。结果是按钮和文本字段将是创建它们的字符串的大小。你可以把它关掉。例如,对于按钮,效果将是所有按钮在该窗口中的大小相同。

从 4.47.0 版开始,大小也可以是int元组的补充。如果指定了 int,则将该值作为宽度,并将高度设置为 1。如果给定size=12,则与size=(12,1)

元素大小 - 非 tkinter 端口(Qt、WxPython、Web)

在非 tkinter 端口中,您可以通过 2 种方式设置特定的元素大小。一种是使用size您习惯使用的普通参数。这将在字符和行中。

另一种方法是使用新参数size_px此参数允许您直接以像素为单位指定大小。设置size_px=(300,200)将创建一个 300 x 200 像素的元素。

此外,如果大小超过转换阈值size,您还可以使用参数指示像素。 这意味着什么?这意味着如果您的宽度 > 20 ( ),则假定您说的是像素,而不是字符。但是,某些“通常较大”的元素的截止值为 100。例如,这些元素包括 the元素。DEFAULT_PIXEL_TO_CHARS_CUTOFFMultlineOutput

如果您对用于将字符转换为像素的数学运算感到好奇,它非常粗糙,但很实用。转换在此变量的帮助下完成:

DEFAULT_PIXELS_TO_CHARS_SCALING = (10,26)

转换只需将您size[0]乘以 10,然后将您size[1]乘以 26。

将大小指定为 INT

从版本 4.47.0 开始,您可以指定单个 int 作为大小。这会将大小设置为单行高度 (1)。写作size=10现在和写作一样size=(10,1)当您指定大小和 int 时,会代表您创建一个元组。这将节省大量的输入,尤其是对于通常只有 1 行或只能有 1 行的元素。

颜色

表示颜色的字符串。任何时候涉及颜色时,您都可以指定 tkinter 颜色名称,例如“lightblue”或 RGB 十六进制值“#RRGGBB”。对于按钮,颜色参数是一个元组(文本颜色,背景颜色)

任何时候在 PySimpleGUI 中将颜色写成元组时,找出哪种颜色是背景的方法是将“,”替换为单词“on”。('white', 'red') 指定“红底白字”的按钮。适用于任何有颜色元组的地方。

软垫

元素周围的空间量(以像素为单位)。默认值为 (5,3),这意味着在 x 轴的每一侧保留 5 个像素,在 y 轴的每一侧保留 3 个像素。您可以使用对 SetOptions 的调用在全局基础上或在元素基础上更改此设置。

如果您希望一侧的像素多于另一侧,则可以将数字拆分为 2 个数字。如果您希望左侧有 200 个像素,右侧有 3 个像素,则焊盘将是 ((200,3), 3)。在此示例中,仅拆分 x 轴。

将 pad 指定为 INT

从版本 4.47.0 开始,可以将 pad 设置为 int 而不是元组。如果指定了 int,则 pad 被设置为一个元组,每个位置都与 int 相同。如果您对焊盘使用诸如 (0,0) 之类的值,这将显着减少布局中的代码。这不是一个不常见的值。现在你可以写pad=0了,你会得到和你输入一样的结果pad=(0,0)

字体

指定字体系列、大小和样式。Windows 上的字体系列包括:* Arial * Courier * Comic、* Fixedsys * Times * Verdana * Helvetica(我认为的默认值)

字体会因系统而异,但是,Tk 8.0 会自动将 Courier、Helvetica 和 Times 映射到所有平台上相应的本地姓氏。此外,字体系列不会导致字体规范在 Tk 8.0 及更高版本上失败。

如果您希望将字体系列设置为默认值,您可以将字体名称以外的任何内容作为系列。PySimpleGUI 演示程序和文档使用“Any”系列来证明这一事实。如果您更清楚,您可以使用“默认”。

有 2 种格式可用于指定字体……一个字符串和一个元组 Tuple - (family, size, styles) String - “Family Size Styles”

要指定带下划线的 Helvetica 字体,大小为 15,值: ('Helvetica', 15, 'underline italics') 'Helvetica 15 underline italics'

字体样式 - 有效的字体样式包括:

  • 斜体italic
  • 罗马roman
  • 胆大bold
  • 普通的normal
  • 强调underline
  • 过度罢工overstrike

具有多种样式的示例是:

font='Courier 12 italic bold underline overstrike'

相同的样式可以用于字体的元组格式。

钥匙

请参阅上面包含有关键的完整信息的部分。

可见的

从版本 3.17 开始,您可以创建最初不可见的元素,以后可以使其可见。

要创建不可见元素,请像往常一样将元素放置在布局中并添加参数

visible=False.

推荐阅读