AnyMath 文档
Notebook

基于计算对数示例的精灵应用

导言

此示例显示了用于计算对数的最简单的交互式应用程序。:

哪里:

  • -对数的底数
  • -对数参数
  • -对数的值。

换句话说,条件满足:

反应式界面

考虑具有响应式接口的应用程序脚本。

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">在新标签页中打开</a>""")
image.png

用户在第一行输入底数,在第二行输入对数参数就足够了。 输入初始数据后自动计算对数值。

从按钮开始

让我们考虑一个应用程序脚本,其中只需单击按钮即可进行计算。

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">在新标签页中打开</a>""")
image.png

与之前的应用程序一样,用户需要在前两行输入源数据。 但是,在这里,计算发生在单击"计算"按钮之后。

停止应用程序。

In [ ]:
engee.genie.stop("$(@__DIR__)/log_app1.jl");
engee.genie.stop("$(@__DIR__)/log_app2.jl");

结论

提供的示例清楚地展示了Genie在创建交互式工具方面的灵活性。 从反应瞬时计算到经典按钮控制。 这种方法为工程计算器、教育小部件和企业实用程序在Engee环境中的快速原型开发提供了很好的机会。 您可以使用呈现的应用程序作为未来项目的基础。