Genie 应用程序:计算对数的示例
简介
本示例演示了最简单的用于计算对数的交互式应用程序:
其中:
* — 对数的底数
* — 对数的自变量
* — 对数的值。
换言之,满足以下条件:
响应式接口
考虑一个具有响应式接口的应用程序脚本。
using GenieFramework, Stipple
@genietools
@app begin
@in x = 2.0
@in y = 8.0
@out a = 3.0
@onchange x, y begin
a = log(x, y)
end
end
function ui()
row([column([ textfield("Основание:", :x, type="number", min=0),
textfield("Число:", :y, type="number", min=0),
textfield("Значение логарифма:", :a, readonly=true) ])])
end
@page("/", ui)
让我们启动该应用。
In [ ]:
genie_app1 = engee.genie.start("$(@__DIR__)/log_app1.jl")
display("text/html", """<a href="$(string(genie_app1.url))" target="_blank">Open in a new tab</a>""")
用户只需在第一行输入底数,在第二行输入对数自变量的值即可。 一旦输入了初始数据,对数值就会自动计算出来。
从按钮开始
让我们考虑一个应用程序脚本,其中计算是在点击按钮时执行的。
using GenieFramework, Stipple
@genietools
@app begin
@in x = 2.0
@in y = 8.0
@in кнопка = false
@out a = 3.0
@onchange кнопка begin
if кнопка
a = log(x, y)
кнопка = false
end
end
end
function ui()
row([ column([ textfield("Основание:", :x, type="number", min=0),
textfield("Число:", :y, type="number", min=0),
textfield("Значение логарифма:", :a, readonly=true),
btn("Вычислить", @click(:кнопка)) ])])
end
@page("/", ui)
现在启动该应用程序。
In [ ]:
genie_app2 = engee.genie.start("$(@__DIR__)/log_app2.jl")
display("text/html", """<a href="$(string(genie_app2.url))" target="_blank">Open in a new tab</a>""")
与前一个应用程序一样,用户需要在前两行输入源数据。不过,此处的计算是在点击“计算”按钮后进行的。
停止应用程序。
In [ ]:
engee.genie.stop("$(@__DIR__)/log_app1.jl");
engee.genie.stop("$(@__DIR__)/log_app2.jl");
结论
所提供的示例清楚地展示了Genie在创建交互式工具方面的灵活性,涵盖了从响应式即时计算到经典按钮控制的各种模式。这种方法为直接在Genie环境中快速原型设计工程计算器、教育小工具和企业实用程序提供了巨大机遇。您可以将此处介绍的应用程序作为未来项目的基础。