HTML 模板
使用 Garden Gnome 模板文件作为 HTML 输出的基础。
模板使用标准 ECMA-262 中定义的 ECMAScript 脚本语言(JavaScript 也基于 ECMAScript,因此它们使用相同的语法)。
您可以在 Qt 的 ECMAScript 参考中找到预定义对象的列表。处理类似于 PHP,您将脚本代码嵌入到 HTML 中。这种方法的主要优点是许多文本编辑器能够使用 HTML 的语法突出显示来使代码更具可读性。
默认目录
在 Windows 上: C:Users<user name>AppDataRoamingGardenGnomeSoftwarePano2VR7HtmlTemplates
在 Mac 上它是:
/Users/<user name>/Library/Application Support/GardenGnomeSoftware/Pano2VR/HtmlTemplates
您始终可以在设置/首选项中查找和更改路径。
文件结构
有两个处理标签:
<?ggf // your code ?>
对于表单和
<?ggs // your code ?>
对于主脚本。这些标签之外的所有内容都将添加到最终的 HTML 页面中。
所有脚本部分
所有脚本部分都包含两个预定义对象。 输出对象包含当前输出格式的配置, 配置提供对整个配置文件的访问权限。该结构类似于 .p2vr 项目文件中的结构。
例如,项目文件如下所示:
<panorama> <input> <type>auto</type> <filename>park.jpg</filename> </input> <viewingparameter> <pan> <start>66.5</start> <min>0</min> <max>360</max> ... </pan> </viewingparameter> </panorama>
因此,pan 最小值的相应方法调用为 config.viewingparameter.pan.value("min")
其中最后一部分是获取实际值的方法。
可以使用 检索 config.input.value("filename") 输入文件的值。
相同的方法适用于当前输出格式的输出对象。
函数和变量
void alert(字符串 s) 在消息框中显示 s。此函数适用于调试代码。
<?ggf ?> – 部分
<?ggf ?> 部分包含一个预定义的表单对象。
表单对象的方法
所有输入字段都有一个用于标识值的 id 参数。这些值可以在 <?ggs ?> 部分中作为 formvalue[“<id>”] 进行访问。
条带有标签的简单文本行: void addLineEdit(string id, string label,int len=0,string default="")
条带标签的文本区域: void addTextArea(string id, string label,string default="")
条带有标签的复选框: void addCheckBox(string id, string label, bool default=false)
条带有标签的 Number 字段。该数字可以介于 minRange 和 maxRange 之间: void addSpinBox(string id, string label, int def=0, int min=0,int max=100)
不同值的下拉列表: void addComboBox(string id, string label, array items, string default)
items 数组是一个关联 JavaScript 数组。返回值是键字段。
示例代码:
var colors = {}; colors["#ff0000"] = "red"; colors["#00ff00"] = "green"; colors["#0000ff"] = "blue"; form.addComboBox("bgcolor", "Background Color", colors);
颜色选择器对话框的按钮: void addColorButton(string id, string label, string default="")
文件名的输入字段,带有用于选择文件名的按钮: void addFileNameInput(string id, string label, string text, string filter, string default="")
水平分隔线:void addLine()
文本标签:void addText(QString label)
添加带有文件扩展名的输出格式。这些值显示在输出旁边的 “格式” 组合框中: void addOutputFormat(string text, string ext)
<?ggs ?> – 部分
<?ggs ?> 部分包含一个预定义的文档对象。document.write 和 document.writeln 方法向 HTML 文档添加文本。
例如代码:
<html> <body> <?ggs document.writeln("<h1>Hello World!</h1>"); ?> </body> </html>
将产生以下输出:
<html> <body> <h1>Hello World!</h1> </body> </html>
文档对象的方法
将字符串 s 编码为 html 实体:string encode(string s)
将字符串 s 编码为 URL:string encodeUrl(string s)
将字符串 s 添加到输出文件:void write(string s)
将字符串 s + 换行符添加到输出文件:void writeln(string s)
与 write 和 writeln 相同,但将字符串编码为 html 实体:void writeEncoded(string s)void writelnEncoded(string s)
将 src 文件添加到输出 dst 文件。对于 src 的相对路径,根目录是模板目录。对于 dst,它是输出路径。dst 中的子目录是自动创建的: void addfile(string src,string dst)
使用内容创建新的文本文件 dst: void createfile(string dst, string content)
使用内容创建新的 UTF-8 编码文本文件 dst。 void createutf8file(string dst, string content)
展开文件名 fn,并将项目基础路径作为 root: string expandFilename(string fn)
将包含所有文件的整个输出压缩到 ZIP 存档中,并将 html 文档命名为 documentName。ZIP 文件名是在 GUI 中选择的输出文件名: void zipoutput(string documentName)
函数和变量
文件名 + 生成的输出文件的相对路径:(字符串) outputfile
文件名 + 生成的输出文件的相对路径。如果生成了多个输出文件,则使用此功能,例如立方体面导出 (array of strings) outputfiles :
表单输入字段的值。您可以使用 formvalue[“”]: (字符串映射) formvalue 访问这些值