Module: UI
概述
UI模块包含许多从SketchUp Ruby脚本创建简单UI元素的方法。
在命名空间下定义
类: Command,HtmlDialog,Notification,Toolbar,WebDialog
类方法摘要# collapse
-
.add_context_menu_handler {|menu| ... } ⇒ Integer
add_context_menu_handler方法用于向SketchUp注册代码块,当要显示上下文菜单时将调用该代码块。
-
.beep ⇒ nil
beep方法播放系统哔哔声。
-
.create_cursor(filename, hot_x, hot_y) ⇒ Integer
create_cursor方法用于从指定位置的图像文件创建光标。
-
.inputbox(*args) ⇒ Array<String>, false
创建用于输入用户信息的对话框。
-
.inspector_names ⇒ Array<String>
inspector_names方法用于返回所有检查器的名称。
-
.menu(menu_name = "Plugins") ⇒ Sketchup::Menu
这个UI.menu方法检索具有给定名称的SketchUp的菜单对象。
-
.messagebox(message, type = MB_OK) ⇒ Integer
创建一个包含静态文本的对话框,其中包含一系列按钮供用户选择。
-
.model_info_pages ⇒ Array<String>
model_info_pages方法用于返回所有可用的model info页面的名称。
-
.openpanel(title, directory, filename) ⇒ String
openpanel方法用于显示“打开”对话框。
-
.openURL(url) ⇒ Boolean
这个UI.openURL方法用于打开URL的默认浏览器。
-
.play_sound(filename) ⇒ nil
播放声音方法用于播放声音文件。
-
.preferences_pages ⇒ Array<String>
preferences_pages方法用于返回所有首选项页面的名称。
-
.refresh_inspectors ⇒ nil
告诉SketchUp刷新所有检查器,如组件浏览器和大纲视图。
-
.refresh_toolbars ⇒ nil
告诉SketchUp刷新所有浮动工具栏。
-
.savepanel(title, directory, filename) ⇒ String
savepanel方法用于显示“保存”对话框。
-
.scale_factor ⇒ Float
返回SketchUp在高DPI监视器上使用的比例因子。
-
.select_directory(options = {}) ⇒ String, ...
这个UI.select_directory方法用于显示操作系统对话框,用于从文件系统中选择一个或多个目录。
-
.set_cursor(cursor_id) ⇒ Boolean
在#UI.set_cursor方法将游标更改为具有给定游标id的新游标。
-
.set_toolbar_visible(name, visible) ⇒ Boolean
set_toolbar_visible方法用于设置给定工具栏是否可见。
-
.show_extension_manager ⇒ nil
这个
show_extension_manager
方法用于显示“扩展管理器”对话框。 -
.show_inspector(name) ⇒ Boolean
show_inspector方法用于显示具有给定名称的检查器。
-
.show_model_info(page_name) ⇒ Boolean
这个UI.show_model_info方法用于显示特定页的“模型信息”对话框。
-
.show_preferences(page_name) ⇒ Boolean
show_preferences方法用于显示“草图首选项”对话框。
-
.start_timer(seconds, repeat = false) {|procedure| ... } ⇒ Integer
start_timer方法用于启动计时器。
-
.stop_timer(id) ⇒ nil
stop_timer方法用于根据计时器的id停止计时器。
-
.toolbar(name) ⇒ UI::Toolbar
toolbar方法用于按名称获取Ruby工具栏。
-
.toolbar_names ⇒ Array<String>
toolbar_names方法用于返回所有可用的本机工具栏的名称(这与PC和Mac不同)。
-
.toolbar_visible?(name) ⇒ Boolean
toolbar_visible?方法用于确定给定工具栏是否可见。
类方法详细信息
↑ .add_context_menu_handler {|menu| ... } ⇒ Integer
add_context_menu_handler方法用于向SketchUp注册代码块,当要显示上下文菜单时将调用该代码块。然后,上下文菜单处理程序可以显示包含您添加的项的上下文菜单。
请注意在上下文菜单处理程序中执行的操作。如果执行的操作需要很长时间,例如遍历模型或大模型中的选择,则会延迟菜单。
contextmenu.rb在Plugins/examples目录中编写示例脚本。
↑ .beep ⇒ nil
beep方法播放系统哔哔声。
beep方法不接受任何参数,也不返回任何值。
↑ .create_cursor(filename, hot_x, hot_y) ⇒ Integer
create_cursor方法用于从指定位置的图像文件创建光标。必须从自定义工具中调用。有关完整的示例,请参见工具类。
自SketchUp 2016年起,就可以为光标提供矢量图像。用于Windows的SVG格式和用于OS X的PDF格式。
↑ .inputbox(prompts, defaults, title) ⇒ Array<String>, false .inputbox(prompts, defaults, list, title) ⇒ Array<String>, false
创建用于输入用户信息的对话框。该对话框包含具有静态文本提示、可选默认值、可选下拉选择和可选标题的输入字段。
也可以使用此方法通过传递可选参数来显示选项的下拉列表。
↑ .inspector_names ⇒ Array<String>
inspector_names方法用于返回所有检查器的名称。Inspectors是各种浮动对话框窗口的另一个名称,您可以使用SketchUp激活这些窗口,例如“材质”窗口。
↑ .menu(menu_name = "Plugins") ⇒ Sketchup::Menu
“扩展”菜单在SketchUp 2015之前被命名为“插件”。为了向后兼容,“插件”仍然有效。
如果你在2018年之前的草图版本中通过了一个空字符串。
这个menu方法检索具有给定名称的SketchUp的菜单对象。向上添加自定义菜单项。
有效的菜单名为:“File”、“Edit”、“View”、“Camera”、“Draw”、“Tools”、“Window”、“Extensions”和“Help”。
↑ .messagebox(message, type = MB_OK) ⇒ Integer
创建一个包含静态文本的对话框,其中包含一系列按钮供用户选择。
有效的消息框类型包括:
-
MB_OK
-包含“确定”按钮。 -
MB_OKCANCEL
-包含“确定”和“取消”按钮。 -
MB_ABORTRETRYIGNORE
-包含“中止”、“重试”和“忽略”按钮。 -
MB_YESNOCANCEL
-包含“是”、“否”和“取消”按钮。 -
MB_YESNO
-包含“是”和“否”按钮。 -
MB_RETRYCANCEL
-包含“重试”和“取消”按钮。 -
MB_MULTILINE
-包含“确定”按钮。
返回值可以是以下任意值:
-
IDOK
-
IDCANCEL
-
IDABORT
-
IDRETRY
-
IDIGNORE
-
IDYES
-
IDNO
在一个MB_MULTILINE
消息框中,消息显示为带有滚动条的多行消息(根据需要)。MB_MULTILNE
还允许第三个字符串参数用作messagebox的标题。
↑ .openpanel(title, directory, filename) ⇒ String
openpanel方法用于显示“打开”对话框。返回的路径可以在代码中使用,以打开文本或图像文件。有关从磁盘读写的示例,请参阅标准的Ruby类文件。
SketchUp2014中修复的错误:从SU7到SU2013,通配符无法正常工作。通配符筛选器没有填充文件类型下拉列表。过滤器字符串将显示在文件名字段中,并将';*';个字符转换为';个字符。注意,通配符筛选器字符串的格式已更改。
See the description of the filename parameter below for details.
↑ .play_sound(filename) ⇒ nil
播放声音方法用于播放声音文件。有效的声音文件包括Mac上的.wav和.mp3文件以及PC上的.wav文件。
↑ .refresh_inspectors ⇒ nil
告诉SketchUp刷新所有检查器,如组件浏览器和大纲视图。当您需要在通过Ruby对文档进行更改后手动强制刷新时,这很有用。一般来说,SketchUp会为您保持这些同步,但偶尔它不会,例如何时model.start_操作已禁用UI更新。
↑ .refresh_toolbars ⇒ nil
告诉SketchUp刷新所有浮动工具栏。当您需要在通过Ruby对文档进行更改后手动强制刷新时,这很有用。一般来说,SketchUp会为您保持这些同步,但偶尔它不会,例如何时Sketchup::Model#start_operation已禁用UI更新。这只影响macOS,在Windows上工具栏总是刷新的。
↑ .savepanel(title, directory, filename) ⇒ String
savepanel方法用于显示“保存”对话框。返回的路径可以在代码中使用,以保存文本或图像文件。有关从磁盘读写的示例,请参阅标准的Ruby类文件。
SketchUp2014中修复的错误:从SU7到SU2013,通配符无法正常工作。分号分隔的通配符列表没有填充文件类型下拉列表。将&*;字段中显示的字符串&*39。
↑ .scale_factor ⇒ Float
SU2017M0将自动放大线宽和文本大小,但不会放大提供给Sketchup::View#draw2d.
返回SketchUp在高DPI监视器上使用的比例因子。对像Sketchup::View#draw2d.
↑ .select_directory(options = {}) ⇒ String, ...
这个select_directory方法用于显示操作系统对话框,用于从文件系统中选择一个或多个目录。
↑ .set_cursor(cursor_id) ⇒ Boolean
在#set_cursor方法将游标更改为具有给定游标id的新游标。请参阅UI.create_光标以及工具类,以获取有关使用任意光标创建自己的工具的详细信息。
如果在标准SketchUp工具处于活动状态时调用此选项,则不会看到自定义光标,因为这些工具会不断设置自己的光标以指示SketchUp的状态。
↑ .set_toolbar_visible(name, visible) ⇒ Boolean
set_toolbar_visible方法用于设置给定工具栏是否可见。请注意,在Mac和PC上,工具栏及其名称是不同的,因此在跨平台脚本中使用此方法时要小心并确保进行测试。
↑ .show_extension_manager ⇒ nil
这个show_extension_manager
方法用于显示“扩展管理器”对话框。
↑ .show_inspector(name) ⇒ Boolean
show_inspector方法用于显示具有给定名称的检查器。您可以使用UI.inspector_名称.
↑ .show_model_info(page_name) ⇒ Boolean
这个show_model_info方法用于显示特定页的“模型信息”对话框。您可以使用获取有效对话框的列表model_info_pages.
- SketchUp 2014
-
"Classifications"
页面已添加。 - SketchUp 2017
-
"Extensions"
页面已被删除。
↑ .show_preferences(page_name) ⇒ Boolean
show_preferences方法用于显示SketchUp首选项对话框。您可以使用获取有效对话框的列表UI.preferences\u页面.
请注意,在OSX下,此方法目前不起作用。
↑ .start_timer(seconds, repeat = false) {|procedure| ... } ⇒ Integer
start_timer方法用于启动计时器。这是为任意动画创建重复代码段的有效方法。
有关使用计时器的自定义动画的详细示例,请参见此博客文章:sketchupapi.blogspot.com/2008/10/animate-yo-cheese.html
请注意,有一个bug,如果在非重复计时器中打开模式窗口,则计时器将重复,直到窗口关闭。
↑ .stop_timer(id) ⇒ nil
stop_timer方法用于根据计时器的id停止计时器。
↑ .toolbar(name) ⇒ UI::Toolbar
toolbar方法用于按名称获取Ruby工具栏。如果工具栏不存在,将创建一个新的工具栏。
↑ .toolbar_visible?(name) ⇒ Boolean
工具栏是否可见?方法用于确定给定工具栏是否可见。请注意,在Mac和PC上,工具栏及其名称是不同的,因此在跨平台脚本中使用此方法时要小心并确保进行测试。