图形用户界面小部件#

arcade.gui.UIAnchorWidget#

class arcade.gui.UIAnchorWidget(*, child: arcade.gui.widgets.UIWidget, anchor_x: str = 'center', align_x: float = 0, anchor_y: str = 'center', align_y: float = 0, size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

小部件,它将自身相对于父级放置。

参数
  • child -- 此包装器的子级

  • anchor_x -- 哪个锚点用于x轴(左、中、右)

  • align_x -- X值的偏移量(-=左,+=右)

  • anchor_y -- Y轴使用哪个锚点(上、中、下)

  • align_y -- Y值的偏移量(-=向下,+=向上)

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UIBorder#

class arcade.gui.UIBorder(child: arcade.gui.widgets.UIWidget, border_width=2, border_color=(0, 0, 0, 255), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

用给定颜色的边框包装小工具。

参数
  • child -- 此包装器的子级

  • border_width -- 边框的宽度

  • border_color -- 边框的颜色

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UIBoxLayout#

class arcade.gui.UIBoxLayout(x=0, y=0, vertical=True, align='center', children: Iterable[arcade.gui.widgets.UIWidget] = (), size_hint=None, size_hint_min=None, size_hint_max=None, space_between=0, style=None, **kwargs)[源代码]#

将小部件放置在彼此相邻的位置。根据垂直属性的不同,小部件的放置顺序是从上到下或从左到右。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • vertical -- 布局子项垂直(True)或水平(False)

  • align -- 将子项沿垂直方向对齐(x:左、中、右/y:上、中、下)

  • children -- 最初的孩子,可以添加更多

  • size_hint -- 对…的暗示 UILayout ,如果这是 UIWidget 想要成长

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • space_between -- 孩子们之间的距离

arcade.gui.UIDummy#

class arcade.gui.UIDummy(x=0, y=0, width=100, height=100, color=(0, 0, 0), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

纯色小工具,用于测试。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • color -- 小工具的填充颜色

  • width -- 微件的宽度

  • height -- 小工具的高度

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UIFlatButton#

class arcade.gui.UIFlatButton(x: float = 0, y: float = 0, width: float = 100, height: float = 50, text='', size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

文本按钮,支持背景颜色和边框。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width (float) -- 小工具的宽度。如果未指定,则默认为纹理宽度。

  • height (float) -- 小工具的高度。如果未指定,则默认为纹理高度。

  • text (str) -- 要添加到按钮的文本。

  • style -- 用于设置按钮的样式

arcade.gui.UIInputText#

class arcade.gui.UIInputText(x: float = 0, y: float = 0, width: float = 100, height: float = 50, text: str = '', font_name=('Arial',), font_size: float = 12, text_color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (0, 0, 0, 255), multiline=False, size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

用户可以在其中键入文本的输入字段。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width -- 微件的宽度

  • height -- 小工具的高度

  • text -- 要显示的文本

  • font_name -- 要加载的字体名称的字符串或元组

  • font_size -- 文本大小

  • text_color -- 文本的颜色

  • multiline -- 支持多行

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UIInteractiveWidget#

class arcade.gui.UIInteractiveWidget(x=0, y=0, width=100, height=100, size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

使用鼠标交互(悬停、按下、单击)的小部件的基类

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width -- 微件的宽度

  • height -- 小工具的高度

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度:参数x:微件的中心x

  • style -- 未使用

arcade.gui.UILabel#

class arcade.gui.UILabel(x: float = 0, y: float = 0, width: Optional[float] = None, height: Optional[float] = None, text: str = '', font_name=('Arial',), font_size: float = 12, text_color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (255, 255, 255, 255), bold=False, italic=False, stretch=False, anchor_x='left', anchor_y='bottom', align='left', dpi=None, multiline: bool = False, size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

一个简单的文本标签。还支持多行文字。如果要滚动文本,请使用 UITextArea 默认情况下, UILabel 将适合其初始内容,如果文本更改了使用 UILabel.fit_content() 来调整大小。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width (float) -- 小工具的宽度。如果未指定,则默认为文本宽度。

  • height (float) -- 小工具的高度。如果未指定,则默认为文本高度。

  • text (str) -- 标签的文本。

  • font_name -- 要使用的字体列表。程序将从列表的开始处启动,并继续尝试加载字体,直到成功。

  • font_size (float) -- 字体大小。

  • text_color (arcade.Color) -- 字体的颜色。

  • bold (bool) -- 粗体字体。

  • italic (bool) -- 斜体字体样式。

  • stretch (bool) -- 拉伸字体样式。

  • anchor_x (str) -- X坐标的锚点:以下其中之一 "left""center""right"

  • anchor_y (str) -- Y坐标的锚点:以下其中之一 "bottom""baseline""center""top"

  • align (str) -- 行上文本的水平对齐方式,仅在提供宽度时才适用。其中之一 "left""center""right"

  • dpi (float) -- 此布局中字体的分辨率。默认为96。

  • multiline (bool) -- 如果MULTLINE为真,则an将开始一个新行。多行为True的UITextWidget与UITextArea相同。

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 没有用过。

fit_content()[源代码]#

设置此UIWidget的宽度和高度以包含整个文本。

arcade.gui.UILayout#

class arcade.gui.UILayout(x=0, y=0, width=100, height=100, children: Iterable[arcade.gui.widgets.UIWidget] = (), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

小部件的基类,用于定位自己或其子部件。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width -- 微件的宽度

  • height -- 小工具的高度

  • children -- 此组的子构件

  • size_hint -- 对…的暗示 UILayout ,如果这是 UIWidget 想要成长

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

do_layout()[源代码]#

在渲染之前由UIManager触发, UILayout S应该将自己和/或孩子放在哪里。之后将在儿童身上触发DO布局。

使用 UIWidget.trigger_render() 为了在下一帧之前触发渲染,如果此小部件的位置或大小发生更改,则会自动执行此操作。

arcade.gui.UIPadding#

class arcade.gui.UIPadding(child: arcade.gui.widgets.UIWidget, padding=(0, 0, 0, 0), bg_color=None, size_hint=(1, 1), size_hint_min=None, size_hint_max=None, **kwargs)[源代码]#

包装小工具并应用填充。

参数
  • child -- 此包装器的子级

  • bg_color -- 背景颜色

  • padding -- 此小部件的外边框和子对象之间的空间

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UISpace#

class arcade.gui.UISpace(x=0, y=0, width=100, height=100, color=(0, 0, 0, 0), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

预留空间的小工具,也可以有背景色。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width -- 微件的宽度

  • height -- 小工具的高度

  • color -- 小工具区域的颜色

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UISpriteWidget#

class arcade.gui.UISpriteWidget(*, x=0, y=0, width=100, height=100, sprite: Optional[arcade.sprite.Sprite] = None, size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

使用控制显示内容的精灵创建一个UI元素。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width -- 微件的宽度

  • height -- 小工具的高度

  • sprite -- 要嵌入到图形用户界面中的Sprite

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UITextArea#

class arcade.gui.UITextArea(x: float = 0, y: float = 0, width: float = 400, height: float = 40, text: str = '', font_name=('Arial',), font_size: float = 12, text_color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (255, 255, 255, 255), multiline: bool = True, scroll_speed: Optional[float] = None, size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

可滚动文本的文本区。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width -- 微件的宽度

  • height -- 小工具的高度

  • text -- 要显示的文本

  • font_name -- 要加载的字体名称的字符串或元组

  • font_size -- 文本大小

  • text_color -- 文本的颜色

  • multiline -- 支持多行

  • scroll_speed -- 滚动速度

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

fit_content()[源代码]#

设置此UIWidget的宽度和高度以包含整个文本。

arcade.gui.UITextureButton#

class arcade.gui.UITextureButton(x: float = 0, y: float = 0, width: Optional[float] = None, height: Optional[float] = None, texture: Optional[arcade.texture.Texture] = None, texture_hovered: Optional[arcade.texture.Texture] = None, texture_pressed: Optional[arcade.texture.Texture] = None, text: str = '', scale: Optional[float] = None, size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

带有按钮面图像的按钮。

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width (float) -- 小工具的宽度。如果未指定,则默认为纹理宽度。

  • height (float) -- 小工具的高度。如果未指定,则默认为纹理高度。

  • texture (Texture) -- 要为小工具显示的纹理。

  • texture_hovered (Texture) -- 如果鼠标悬停在按钮上,则显示不同的纹理。

  • texture_pressed (Texture) -- 将鼠标悬停在按钮上时按下鼠标按钮将显示不同的纹理。

  • text (str) -- 要添加到按钮的文本。

  • style -- 按钮的样式信息。

  • scale (float) -- 根据基本纹理大小缩放按钮。

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

arcade.gui.UITexturePane#

class arcade.gui.UITexturePane(child: arcade.gui.widgets.UIWidget, tex: arcade.texture.Texture, padding=(0, 0, 0, 0), size_hint=(1, 1), size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

此包装器在呈现子小部件之前绘制背景

参数
  • child -- 此包装器的子级

  • tex -- 用作背景的纹理

  • padding -- 此小部件的外边框和子对象之间的空间

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

arcade.gui.UIWidget#

class arcade.gui.UIWidget(x: float = 0, y: float = 0, width: float = 100, height: float = 100, children: Iterable[arcade.gui.widgets.UIWidget] = (), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[源代码]#

这个 UIWidget 类是创建小部件所需的基类。

我们还有一些您应该知道的默认值和行为:

  • A UIWidget 不是一个 UILayout :它不会改变其子对象的位置或大小。如果希望控制定位或调整大小,请使用 UILayout

参数
  • x (float) -- 左下角的X坐标

  • y (float) -- 左下角的Y坐标

  • width -- 微件的宽度

  • height -- 小工具的高度

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用

add(child: arcade.gui.widgets.W, *, index=None) arcade.gui.widgets.W[源代码]#

向此添加小部件 UIWidget 作为一个孩子。添加的小部件将接收UI事件并呈现。

默认情况下,最新添加的小部件将首先接收UI事件,并在其他小部件上呈现。

参数
  • child -- 要添加的小部件

  • index -- 添加微件的位置,没有优先级最高的微件

返回

给定的孩子

center_on_screen() arcade.gui.widgets.W[源代码]#

将此小工具放在当前窗口的中心。

clear()[源代码]#

清除子列表。

dispatch_ui_event(event: arcade.gui.events.UIEvent)[源代码]#

派遣一名 UIEvent 使用侏儒事件分派机制

do_render(surface: arcade.gui.surface.Surface)[源代码]#

呈现小部件的图形表示,使用 UIWidget.prepare_render() 将绘图区域限制为相对于0,0的小部件RECT和DRAIL。

move(dx=0, dy=0)[源代码]#

按dx和dy移动小部件。

参数
  • dx -- X轴差分

  • dy -- Y轴差

on_event(event: arcade.gui.events.UIEvent) Optional[bool][源代码]#

关卡 UIEvent 它遍历窗口小部件树。

on_update(dt)[源代码]#

将被触发的自定义逻辑。

property position#

返回左下角坐标

prepare_render(surface)[源代码]#

用于渲染的辅助对象,绘图区域将调整到自己的位置和大小。绘制调用必须相对于0,0。这也将防止在小部件区域之外的任何透支

参数

surface -- 用于渲染的曲面

remove(child: arcade.gui.widgets.UIWidget)[源代码]#

从子对象列表中删除给定子对象。

scale(factor)[源代码]#

按系数缩放小工具的大小(x、y、宽度、高度)。:参数系数:比例系数

trigger_full_render()[源代码]#

如果小部件使用透明区域或被移动,则请求完整呈现父级可能很重要

trigger_render()[源代码]#

这将在渲染下一帧之前延迟渲染,以便 UIWidget.do_render() 不会多次调用。

with_background(texture: arcade.texture.Texture, top=0, right=0, bottom=0, left=0) arcade.gui.widgets.UITexturePane[源代码]#

用背景包装小工具

参数
  • texture -- 背景纹理

  • top -- 顶部填充

  • right -- 右填充

  • bottom -- 底部填充

  • left -- 左侧填充

返回

将自身作为子对象的包裹纹理

with_border(width=2, color=(0, 0, 0)) arcade.gui.widgets.UIBorder[源代码]#

用边框包装此小部件

参数
  • width -- 边框宽度

  • color -- 边框颜色

返回

将自身作为子项的包络边框

with_space_around(top: float = 0, right: float = 0, bottom: float = 0, left: float = 0, bg_color: Optional[Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]]] = None) arcade.gui.widgets.UIPadding[源代码]#

包装此小部件并应用填充

参数
  • top -- 顶部填充

  • right -- 右填充

  • bottom -- 底部填充

  • left -- 左侧填充

  • bg_color -- 背景色

返回

以自身为子项的包裹式填充

arcade.gui.UIWidgetParent#

class arcade.gui.UIWidgetParent[源代码]#
trigger_render()[源代码]#

由于微件的透明部分,微件可能会请求父级重新渲染

arcade.gui.UIWrapper#

class arcade.gui.UIWrapper(*, child: arcade.gui.widgets.UIWidget, padding=(0, 0, 0, 0), size_hint=None, size_hint_min=None, size_hint_max=None, style=None)[源代码]#

包装为 arcade.gui.UIWidget 并在它周围预留空间,恰好有一个孩子供养。

参数
  • child -- 此包装器的单个子级

  • padding -- 周围空间(上、右、下、左)

  • size_hint -- 浮点数元组(0.0-1.0),应请求多少父级空间

  • size_hint_min -- 以像素为单位的最小宽度和高度

  • size_hint_max -- 以像素为单位的最大宽度和高度

  • style -- 未使用