【发布时间】:2014-01-09 04:35:36
【问题描述】:
我是 ruby 和 sketchup 的初学者。
我需要在打开导入对话框时同时选择并导入多个文件。我使用了一个类,它继承自 SketchUp 的 Importer 接口。但是如果我想导入多个文件,这意味着我必须多次打开导入器对话框才能做到这一点。很不方便。
导入后,它会返回我导入的所有文件的所有路径
。你有什么实现的想法吗?
非常感谢 !【问题讨论】:
我是 ruby 和 sketchup 的初学者。
我需要在打开导入对话框时同时选择并导入多个文件。我使用了一个类,它继承自 SketchUp 的 Importer 接口。但是如果我想导入多个文件,这意味着我必须多次打开导入器对话框才能做到这一点。很不方便。
导入后,它会返回我导入的所有文件的所有路径
。你有什么实现的想法吗?
非常感谢 !【问题讨论】:
不幸的是,Ruby API 没有实现任何 API 来在文件对话框中选择多个文件。
此外,如果您使用Importer 类,您会被它显示的文件对话框卡住。只能单选。
如果您知道应该读取文件夹中的所有文件,您应该让用户选择一个文件,然后从中提取路径并读取该目录中的所有文件。
如果您放弃 Importer 课程,您可以制作自己的替代品。最好的办法是创建一个调用 OS API 以显示多选对话框的 Ruby C 扩展。
或者,您可以创建一个显示文件并让用户选择多个文件的 WebDialog。但这意味着您必须从头开始创建所有 UI,而且它不会像本机 OS 文件对话框那样。 http://www.sketchup.com/intl/en/developer/docs/ourdoc/webdialog.php https://github.com/thomthom/sketchup-webdialogs-the-lost-manual/wiki
如果您正在制作仅适用于 Windows 的插件,则可以使用 HTML5 的拖放功能。虽然这也有要求用户拥有最新 IE 版本的缺点。 (当 SU 不活动时,OSX 会隐藏 WebDialogs - 因此当您从 Finder 拖动文件时,您不能将其用作放置目标。) 不久前我做了一个概念证明:https://github.com/thomthom/DropZone
【讨论】: