Ren’Py带来了一大堆行为、值和函数,与界面和界面语言协同作用。
(译者注:在2021年3月之前,action翻译为“动作”。于2021年4月起,action修改为“行为函数”或“行为”。)
当某个按钮(包括图片按钮、文本按钮和hotspot按钮)被激活、被鼠标悬停或失去鼠标悬停状态时,某个行为(action)就会被唤起。当某个按钮被选中或者非启用时,行为(action)就可能已经决定了。
与这些行为一样,某个行为可以是一个不带任何入参的函数。当行为被唤起时,对应的函数就会调用。如果那个行为返回某个值,返回的值就会传到来源交互动作。
一个行为也可能是个行为(action)列表,列表内的行为会顺序运行。
这些行为用于管理界面,交互结果和流程控制。
Call
(label, *args, **kwargs) link结束当前语句,并调用某个脚本标签(label)。入参和关键词参数会传给 renpy.call()
。
Hide
(screen, transition=None) link如果名为 screen 的界面已经显示,则隐藏这个界面。
Jump
(label) link触发主控流程转到脚本标签 label 处。
NullAction
(*args, **kwargs) link不做任何事。
可以用作某个按钮的“鼠标悬停/鼠标离开”事件响应,不执行任何行为。
Return
(value=None) link使用提供的值返回给当前的互动行为,提供的值不可以为None。常用于菜单和imagemap,用来选择交互行为的返回值。如果使用的是 call screen
语句调用界面,返回值就会放置在 _return 变量中。
如果出现在某个菜单中,值会返回给来源菜单。(这种情况下就需要返回None。)
Show
(screen, transition=None, *args, **kwargs) link触发另一个界面的显示。 screen 是给定待显示的界面名。入参会传给正在显示的界面。
如果 transition 非空,则会用作新界面显示时的转场效果。
ShowTransient
(screen, transition=None, *args, **kwargs) link显示一个临时界面。临时界面会在当前交互完成后隐藏。入参会传给当前显示的界面。
如果 transition 非空,则会用作新界面显示时的转场效果。
ToggleScreen
(screen, transition=None, *args, **kwargs) link切换界面的可视性。如果某个界面当前没有显示,则会使用提供的入参显示那个界面。相反,则隐藏那个界面。
如果 transition 非空,则会用作新界面显示时的转场效果。
这些行为设置或者切换数据。
AddToSet
(set, value) link将 value 添加到 set 中。
RemoveFromSet
(set, value) link将 value 从 set 中移除。
SetDict
(dict, key, value) link将字典型数据 dict 中键值 key 对应的值设置为 value 。
SetField
(object, field, value) link将某个对象的字段(field)设置为给定的值。 object 是目标对象, field 是待设置的字段名称的字符串, value 是需要设置成的值。
SetLocalVariable
(name, value) link将指定的变量 name 设置为当前本地上下文中的值 value。
只有在某个界面(screen)被另一个场景(scene)使用的情况,才会用到该函数。其提供了一种方法,可以设置界面使用变量的值。
在其他需要修改变量值的情况下,推荐使用 SetScreenVariable()
,那可以缓存更多的界面数据。
该函数能赋值的变量仅限当前上下文中创建——其他地方创建的变量不能通过该函数进行设置和传递。
SetScreenVariable
(name, value) link将与当前界面关联的变量 name 值设置为 value 。
SetVariable
(variable, value) link将变量 variable 设置为 value 。
ToggleDict
(dict, key, true_value=None, false_value=None) link切换 dict 中键 key 的值。“切换”的意思是,当对应的行为执行后,原布尔值取反。
ToggleField
(object, field, true_value=None, false_value=None) link切换 object 上 field 的值。“切换”的意思是,当对应的行为执行后,原字段(field)上所有布尔值取反。
ToggleLocalVariable
(name, true_value=None, false_value=None) link切换当前本地上下文中 name 的值。
只有在某个界面(screen)被另一个场景(scene)使用的情况,才会用到该函数。其提供了一种方法,可以设置界面使用变量的值。
在其他需要修改变量值的情况下,推荐使用 ToggleScreenVariable()
,那可以缓存更多的界面数据。
该函数能赋值的变量仅限当前上下文中创建——其他地方创建的变量不能通过该函数进行设置和传递。
ToggleScreenVariable
(name, true_value=None, false_value=None) link切换当前界面变量 name 的值。
ToggleSetMembership
(set, value) link切换集 set 中 value 的成员。如果对应的值在集里不存在,会添加那个值到集合中。否则,就会移动那个值。
带有这个行为的按钮会被标记为被选中(selected)状态,仅当那个值存在于集 set 中。
ToggleVariable
(variable, true_value=None, false_value=None) link切换 variable 。
这些行为会处理文件的保存、读取和删除。其中很多都是用 name 和 page 入参。
FileAction
(name, page=None, **kwargs) link对文件“进行正确操作”。这意味着在load界面显示时进行文件读取操作,相反在save界面显示时进行文件保存操作。
其他关键词入参会传给FileLoad或者FileSave。
FileDelete
(name, confirm=True, page=None) link删除文件。
FileLoad
(name, confirm=True, page=None, newest=True) link读取文件。
FilePage
(page) link将文件页面设置为 page ,其可以是“auto”、“quick”或一个整数。
FilePageNext
(max=None, wrap=False) link前往下一个文件页面(page)。
FilePagePrevious
(max=None, wrap=False) link前往上一个文件页面,前提是上一个页面存在的话。
FileSave
(name, confirm=True, newest=True, page=None, cycle=False) link保存文件。
带槽位的按钮被选中,如果其被标记为最新存档文件。
config.quicksave_slots
配置了循环使用的槽位。FileTakeScreenshot
(*args, **kwargs) link当游戏存档时,截取屏幕快照并使用。通常使用存档界面显示之前的界面截图,用作存档的快照。
QuickLoad
(confirm=True) link快速读档。
QuickSave
(message=u'Quick save complete.', newest=False) link快速存档。
PauseAudio
(channel, value=True) link音频通道 channel 设置暂停标识(flag)。
如果 value 为True,通道channel会暂停。相反,通道channel会从暂停恢复。如果值为“toggle”,暂停标识会进行切换,即布尔值进行“逻辑非”操作。
Play
(channel, file, selected=None, **kwargs) link在指定通道(channel)播放一个音频文件。
其他关键词参数会被传给 renpy.music.play()
。
Queue
(channel, file, **kwargs) link在给定的通道上将音频文件队列化。
其他关键词参数会被传给 renpy.music.queue()
。
SetMixer
(mixer, volume) link将 mixer 的音量设置为 value 。
SetMute
(mixer, mute) link将一个或多个混合器设置为静音状态。当混合器静音时,与混合器关联的音频通道会停止播放音频。
Stop
(channel, **kwargs) link停用某个音频通道。
关键词参数会传给 :func:renpy.music.stop()。
ToggleMute
(mixer) link切换混合器的静音状态。
这些是其他地方找不到的一些行为。
Confirm
(prompt, yes, no=None, confirm_selected=False) link提示用户进行确认的一种行为。如果用户点击了“是”,将执行 yes 行为。否则,执行 no 行为。
这个行为的可用性和可选择性与 yes 行为相匹配。
DisableAllInputValues
() link禁用所有活动的输入项。如果存在默认输入项的话,它将重新获得焦点。否则,任何输入项都不会获得焦点。
Function
(callable, *args, **kwargs) link这个行为会使用 args 和 kwargs 调用 callable 。
这个行为使用一个可选的 _update_screens 关键词参数,而且这个参数默认为True。参数为True时,函数返回后,互动行动会重新开始,各界面会更新。
如果函数返回一个非空值,互动行为会停止并返回那个值。(使用call screen语句得到的返回值放置在 _return 变量中。)
Help
(help=None) link显示帮助。
如果定义过一个名为 help
的界面,使用 ShowMenu()
就可以显示那个界面,并且 help 参数会被省略。
用于提供帮助的字符串。其被用于以下两种情况:
若 help 为None, config.help()
配置项会被用作默认值。
HideInterface
(*args, **kwargs) link隐藏用户接口,直到出现用户点击事件。
If
(expression, true=None, false=None) link根据 expression 的结果选择使用 true 或 false 的行为。这个函数用在基于某个表达式的结果选择执行行为。注意入参的默认值None,也可以用作一个行为,禁用某个按钮。
InvertSelected
(action) link该行为将提供行为的选项状态反转,可以应用在别的方法上。
MouseMove
(x, y, duration=0) link将鼠标指针移动到坐标 x, y 。如果设备没有鼠标指针,或者_preferences.mouse_move的值是False,那什么都不会发生。
Notify
(message) link使用 renpy.notify()
函数显示 message 内容。
OpenURL
(url) link在web浏览器中打开 url 。
QueueEvent
(event, up=False) link使用 renpy.queue_event()
将给定的事件消息加入到事件队列中。
RestartStatement
(*args, **kwargs) link这个行为会触发Ren’Py回滚到当前语句之前,并再次执行当前语句。可以用在某些持久化变量改变后影响语句显示效果的情况。
在菜单语境运行的话,等到用户退出并回到上一层语境时才会执行回滚行为。
RollForward
(*args, **kwargs) link这个行为触发前滚,前提是前滚可行。否则,该行为是禁用状态。
Rollback
(*args, **kwargs) link这个行为触发回滚,前提是回滚可行。否则,不会发生任何事。
入参将传给 :func:renpy.rollback() 函数,除非参数 force 是默认值“menu”。
RollbackToIdentifier
(identifier) link这个行为触发回滚至某个标识符(identifier)。回滚标识符会作为HistoryEntry对象的一部分返回。
Screenshot
(*args, **kwargs) link屏幕截图。
Scroll
(id, direction, amount=u'step') linkSelectedIf
(expression) link这个行为允许某个表达式控制一个按钮是否被标记为选中状态。其应被用作包含一个或多个行为的列表的一部分。例如:
# 如果mars_flag为True时,按钮会被选中
textbutton "Marsopolis":
action [ SelectedIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]
点击按钮后,在SeletedIf内部的行为会被正常执行。
SensitiveIf
(expression) link这个行为允许某个表达式控制一个按钮是否被标记为可用状态。其应被用作包含一个或多个行为的列表的一部分。例如:
# 如果mars_flag为True时,按钮是可用的
textbutton "Marsopolis":
action [ SensitiveIf(SetVariable("mars_flag", True)), SetVariable("on_mars", True) ]
点击按钮后,在SensitiveIf内部的行为会被正常执行。
Skip
(fast=False, confirm=False) link触发游戏开始使用跳过(skipping)。如果游戏处于菜单语境下,这个行为导致回到游戏界面。否则,这个行为启用跳过(skipping)。
With
(transition) link触发 transition 生效。
条值与条(bar)一同使用,设置条(bar)的值,且允许条(bar)调整某个潜在特性。可以通过创建 BarValue
类的子类创建一个新的条值。
所有的BarValue类都有关键词 step ,也可以接受关键词 force_step ,具体情况详见 ui.adjustment()
。
AnimatedValue
(value=0.0, range=1.0, delay=1.0, old_value=None) link将某个值序列化,使用 delay 秒的时间将 old_value 的值转为 value 的值。
AudioPositionValue
(channel=u'music', update_interval=0.1) link显示在 channel 通道播放音频文件播放位置的值。
DictValue
(dict, key, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link允许用户使用字典型数据的键调整对应的值。
FieldValue
(object, field, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link允许用户调整某个对象上字段(field)的条(bar)值。
若为True,当键对应的值为0时,条(bar)值范围会调整为从1到0,所有其他值都会被降低到1。同样的,当条(bar)被设置成最大值时,字段(filed)的值将设置为0。
这偏向于某些内部使用。
MixerValue
(mixer) link音频混合器的值。
ScreenVariableValue
(variable, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link用于调整界面变量值的条(bar)值。
若为True,当键对应的值为0时,条(bar)值范围会调整为从1到0,所有其他值都会被降低到1。同样的,当条(bar)被设置成最大值时,variable的值将设置为0。
这偏向于某些内部使用。
StaticValue
(value=0.0, range=1.0) link这个行为允许某个值被指定为静态。
VariableValue
(variable, range, max_is_zero=False, style=u'bar', offset=0, step=None, action=None, force_step=False) link允许用户调整默认存储区变量值的条(bar)值。
若为True,当键对应的值为0时,条(bar)值范围会调整为从1到0,所有其他值都会被降低到1。同样的,当条(bar)被设置成最大值时,variable的值将设置为0。
这偏向于某些内部使用。
XScrollValue
(viewport) link根据给定的id,在当前界面水平滚动视口(viewport)的可调整值。视口(viewport)必须在条(bar)值出现前定义。
YScrollValue
(viewport) link根据给定的id,在当前界面垂直滚动视口(viewport)的可调整值。视口(viewport)必须在条(bar)值出现前定义。
输入(input)值与文本输入一起使用,用于设置默认文本、接受改变文本、响应回车键、决定文本是否可编辑。要创建新的输入(input)值,可以使用 InputValue
类的子类。
Ren’Py定义的输入(input)值继承自InputValue类,这意味着所有输入值均含有Enable()、Disable()和Toggle()方法,分别执行启用(enable)、禁用(disable)和切换编辑(toggle edit)行为。可以参考 DisableAllInputValues()
行为。
DictInputValue
(dict, key, default=True, returnable=False) link将字典 dict 中键 key 的值更新的输入(input)值。
FieldInputValue
(object, field, default=True, returnable=False) link一个更新某个对象上字段(field)值的输入值。
FilePageNameInputValue
(pattern=u'Page {}', auto=u'Automatic saves', quick=u'Quick saves', page=None, default=False) link一个输入值用于更新文件页面(page)名。
ScreenVariableInputValue
(variable, default=True, returnable=False) link一个更新变量的输入(input)值。
VariableInputValue
(variable, default=True, returnable=False) link一个更新变量的输入(input)值。
这些函数和类在界面方面很有用。
所有环境设定都可以基于上面给出的行为Action和值Value来定义。这需要一些Ren’Py方面的知识,才能选择正确的环境设定并运用。环境设定构造器(constructor)让这件事变得简单,通过创建一个行为或值,就能基于名称应用在默认的环境设定界面上。
Preference
(name, value=None, range=None) link其从某项环境设定构造了合适的行为或者值。环境设定名称应该是在变准菜单中出现的名称,值应该是选项名、“toggle”轮询选项、一个指定的值,或者按钮的名称。
可以与按钮和热区一起使用的行为如下:
- Preference(“display”, “fullscreen”) - 全屏模式显示。
- Preference(“display”, “window”) - 窗口模式显示,1倍大小。
- Preference(“display”, 2.0) - 窗口模式显示,2倍大小。
- Preference(“display”, “any window”) - 用前一种窗口尺寸显示。
- Preference(“display”, “toggle”) - 切换显示模式。
- Preference(“transitions”, “all”) - 显示所有转场(transition)效果。
- Preference(“transitions”, “none”) - 不显示转场(transition)效果。
- Preference(“transitions”, “toggle”) - 切换转场(transition)效果。
- Preference(“video sprites”, “show”) - 显示所有视频精灵(sprite)。
- Preference(“video sprites”, “hide”) - 可能的话,将视频精灵(sprite)降格为图片显示。
- Preference(“video sprites”, “toggle”) - 切换图像降格行为。
- Preference(“show empty window”, “show”) - 允许“window show”和“window auto”语句在say语句之外显示一个空窗口。
- Preference(“show empty window”, “hide”) - 不允许“window show”和“window auto”语句在say语句之外显示一个空窗口。
- Preference(“show empty window”, “toggle”) - 切换上面两种情况。
- Preference(“text speed”, 0) - 文本立刻显示。
- Preference(“text speed”, 142) - 设置文本显示速度为每秒142字符。
- Preference(“joystick”) - 显示joystick环境设定。
- Preference(“skip”, “seen”) - 只跳过看过的信息。
- Preference(“skip”, “all”) - 跳过所有信息,无论是否看过。
- Preference(“skip”, “toggle”) - 切换上面两种情况。
- Preference(“begin skipping”) - 开始跳过(skipping)。
- Preference(“after choices”, “skip”) - 在选项后跳过。
- Preference(“after choices”, “stop”) - 在选项后停止跳过。
- Preference(“after choices”, “toggle”) - 切换上面两种情况。
- Preference(“auto-forward time”, 0) - 将自动前进的时间设置为无限。
- Preference(“auto-forward time”, 10) - 设置自动前进时间(单位为每秒250个字符)。
- Preference(“auto-forward”, “enable”) - 启用自动前进模式。
- Preference(“auto-forward”, “disable”) - 禁用自动前进模式。
- Preference(“auto-forward”, “toggle”) - 切换自动前进模式。
- Preference(“auto-forward after click”, “enable”) - 在一次点击后维持自动前进模式。
- Preference(“auto-forward after click”, “disable”) - 在一次点击后禁用自动前进模式。
- Preference(“auto-forward after click”, “toggle”) - 切换上面两种情况。
- Preference(“automatic move”, “enable”) - 启用自动鼠标模式。
- Preference(“automatic move”, “disable”) - 禁用自动鼠标模式。
- Preference(“automatic move”, “toggle”) - 切换自动鼠标模式。
- Preference(“wait for voice”, “enable”) - 自动前进时,等待当前语音播放完毕。
- Preference(“wait for voice”, “disable”) - 自动前进时,不等待当前语音播放完毕。
- Preference(“wait for voice”, “toggle”) - 切换语音等待模式。
- Preference(“voice sustain”, “enable”) - 当前互动行为中维持语音。
- Preference(“voice sustain”, “disable”) - 当前互动行为中不维持语音。
- Preference(“voice sustain”, “toggle”) - 切换语音维持模式。
- Preference(“music mute”, “enable”) - 音乐混合器静音。
- Preference(“music mute”, “disable”) - 取消音乐混合器静音。
- Preference(“music mute”, “toggle”) - 切换音乐静音状态。
- Preference(“sound mute”, “enable”) - 音效混合器静音。
- Preference(“sound mute”, “disable”) - 取消音效混合器静音。
- Preference(“sound mute”, “toggle”) - 切换音效静音状态。
- Preference(“voice mute”, “enable”) - 语音混合器静音。
- Preference(“voice mute”, “disable”) - 取消语音混合器静音。
- Preference(“voice mute”, “toggle”) - 切换语音静音状态。
- Preference(“mixer <mixer> mute”, “enable”) - 将指定的混合器静音。
- Preference(“mixer <mixer> mute”, “disable”) - 取消指定的混合器静音。
- Preference(“mixer <mixer> mute”, “toggle”) - 切换指定的混合器静音状态。
- Preference(“all mute”, “enable”) - 所有混合器静音。
- Preference(“all mute”, “disable”) - 取消所有混合器静音。
- Preference(“all mute”, “toggle”) - 切换所有混合器静音状态。
- Preference(“music volume”, 0.5) - 设置音乐音量。
- Preference(“sound volume”, 0.5) - 设置音效音量。
- Preference(“voice volume”, 0.5) - 设置语音音量。
- Preference(“mixer <mixer> volume”, 0.5) - 设置指定混合器音量。
- Preference(“emphasize audio”, “enable”) - 加强在config.emphasize_audio_channels中定义的音频通道。
- Preference(“emphasize audio”, “disable”) - 取消加强在config.emphasize_audio_channels中定义的音频通道。
- Preference(“emphasize audio”, “toggle”) - 切换音频加强状态。
- Preference(“self voicing”, “enable”) - 启用自动语音。
- Preference(“self voicing”, “disable”) - 禁用自动语音。
- Preference(“self voicing”, “toggle”) - 切换自动语音模式。
- Preference(“clipboard voicing”, “enable”) - 启用剪贴板语音。
- Preference(“clipboard voicing”, “disable”) - 禁用剪贴板语音。
- Preference(“clipboard voicing”, “toggle”) - 切换剪贴板语音状态。
- Preference(“debug voicing”, “enable”) - 启用自动语音debug。
- Preference(“debug voicing”, “disable”) - 禁用自动语音debug。
- Preference(“debug voicing”, “toggle”) - 切换自动语音debug状态。
- Preference(“rollback side”, “left”) - 触摸屏幕左侧触发回滚。
- Preference(“rollback side”, “right”) - 触摸屏幕右侧触发回滚。
- Preference(“rollback side”, “disable”) - 触摸屏幕不触发回滚。
- Preference(“gl powersave”, True) - 使用省电模式降低帧率。
- Preference(“gl powersave”, False) - 不使用省电模式降低帧率。
- Preference(“gl powersave”, “auto”) - 使用电池情况下自动启用省电模式。
- Preference(“gl framerate”, None) - 运行时显示帧率。
- Preference(“gl framerate”, 60) - 在给定的帧率下运行。
- Preference(“gl tearing”, True) - (设备性能不足时)拖慢而不是跳帧。
- Preference(“gl tearing”, False) - (设备性能不足时)跳帧而不是拖慢。
- Preference(“font transform”, “opendyslexic”) - 将字体转为opendyslexic(译者注:为阅读障碍人群设计的字体)的配置项。
- Preference(“font transform”, “dejavusans”) - 将字体转为deja vu sans的配置项。
- Preference(“font transform”, None) - 禁用字体转换。
- Preference(“font size”, 1.0) - 字号缩放因子配置项。
- Preference(“font line spacing”, 1.0) - 字体行距缩放因子配置项。
- Preference(“system cursor”, “enable”) - 使用系统贯标,忽略 config.mouse。
- Preference(“system cursor”, “disable”) - 使用config.mouse的光标。
- Preference(“system cursor”, “toggle”) - 切换系统光标。
可以与条(bar)一起使用的值如下:
- Preference(“text speed”)
- Preference(“auto-forward time”)
- Preference(“music volume”)
- Preference(“sound volume”)
- Preference(“voice volume”)
- Preference(“mixer <mixer> volume”)
- Preference(“self voicing volume drop”)
- Preference(“font size”)
- Preference(“font line spacing”)
range 参数可以指定某个条(bar)的数值范围。例如,“text speed”的默认值是200cps。“auto-forward time”的默认值是每段文本30秒。
GetCharacterVolume
(voice_tag) link该函数根据关联的语音标签(tag),返回一个介于0.0到1.0之间的数值,表示对应 voice 声道最大音量的一个比例。
这些函数和行为跟游戏手柄一起工作。
GamepadCalibrate
() link调用手柄校正的行为。
GamepadExists
(developer=True) link检测手柄是否存在的函数。存在返回True,不存在返回False。
这些函数返回关于文件的有用信息。它们使用相同的默认页面(page)相关的文件行为。
FileCurrentPage
() link将当前文件页面(page)以字符串返回。
FileCurrentScreenshot
(empty=None, **properties) link一个显示屏幕截图的可显示控件。其将保存你在当前文件中,前提是进入了菜单或使用 FileTakeScreenshot()
采集了屏幕截图。
如果没有当前屏幕截图,对应的位置上显示 empty 的图像。(如果 empty 是空值None,默认为 Null()
。)
FileJson
(name, key=None, empty=None, missing=None, page=None) link截图与文件 name 关联的Json信息。
如果 key 为None,返回整个Json对象。如果存档槽位为空,则返回 empty 。
如果 key 不为空,则返回json[key],前提是 key 在存档json对象中有定义。如果存档存在但不包含 key ,就返回 missing 。如果存档槽位为空,则返回 empty 。
使用 config.save_json_callbacks()
注册的回调函数可以用于在存档槽位中添加Json。
FileLoadable
(name, page=None) link该函数在文件可加载的情况下返回True,否则返回False。
FileNewest
(name, page=None) link如果文件是最新版本返回True,否则返回False。
FilePageName
(auto=u'a', quick=u'q') link以字符串形式返回当前文件页面(page)名称。如果是一个普通页面(page),该函数返回页面编号。否则,返回 auto 或 quick 。
FileSaveName
(name, empty=u'', page=None) link返回文件保存时生效的存档名,如果文件不存在则返回 empty 。
FileScreenshot
(name, empty=None, page=None) link返回给定那个文件相关的屏幕截图。如果文件不能加载,返回 empty ,前提 empty 的值不是None。在文件不能加载且 empty 为空的情况下,一个空的可视组件会被创建。
返回值是一个可显示对象。
FileSlotName
(slot, slots_per_page, auto=u'a', quick=u'q', format=u'%s%d') link返回编号后的槽位名。前提是普通页面(page)下的槽位都按顺序从1开始编号,并且页面也从1开始编号。当槽位编号为2,每个页面槽位数(slots_per_page)为10,其他变量都是默认值的情况下:
FileTime
(name, format=u'%b %d, %H:%M', empty=u'', page=None) link返回文件保存时间,格式根据 format 显示。如果未找到文件,返回 empty 。
返回值是一个字符串。
FileUsedSlots
(page=None, highest_first=True) link返回页面上所有可用的经过编号的文件列表。
所有可视组件上可用的tooltip特性和GetTooltip函数都可以接入tooltip。当可视组件获得焦点时,GetTooltip函数会返回这个组件的tooltip特性的值。
这里是一个样例::
screen tooltip_example():
vbox:
textbutton "北":
action Return("n")
tooltip "去约见北极熊。"
textbutton "南":
action Return("s")
tooltip "前往热带。"
textbutton "东":
action Return("e")
tooltip "我们可以拥抱黎明。"
textbutton "西":
action Return("w")
tooltip "去欣赏最美的日落。"
$ tooltip = GetTooltip()
if tooltip:
text "[tooltip]"
GetTooltip
(screen=None) link返回当前获得焦点的可视组件的tooltip,如果可视组件未获得焦点则返回None。
Warning
这种传统方法已被废弃,并使用上面说的方法替代。不过你可能会在一些老版本的项目中见到它。
当按钮处于指针悬停状态时,tooltip类会改变界面。
Tooltip
(default) link当鼠标指针悬停在某个区域上时,一个tooltip对象可以用于提示对应界面的功能。
tooltip对象有一个 value
字段,当tooltip对象被创建时会通过构造器传入 default 作为默认值。当通过tooltip创建的某个按钮行为被使用时,value字段就会根据关联的行为改变对应值。
Action
(value) link将按钮的hovered特性对应的行为返回。当按钮处于指针悬停状态时,tooltip的value字段会被设置为 value 。当按钮失去焦点时,tooltip的value字段会恢复为默认值。
在某个界面使用tooltip时,常用做法是在default语句中创建tooltip对象。tooltip的值和行为的方法可以在界面中使用。使用时可以按任何顺序——在行为执行前就可以使用tooltip的值。
tooltip可以使用任何类型的值。在下面的样例中,我们使用text语句在界面中显示字符串,使用add语句添加可视组件也是可行的。还可以设计更多复杂的行为。
screen tooltip_test:
default tt = Tooltip("没有选择任何按钮。")
frame:
xfill True
has vbox
textbutton "One.":
action Return(1)
hovered tt.Action("The loneliest number.")
textbutton "Two.":
action Return(2)
hovered tt.Action("Is what it takes.")
textbutton "Three.":
action Return(3)
hovered tt.Action("A crowd.")
text tt.value