gpt4 book ai didi

user-interface - 非常简单、简洁和容易的 GUI 编程 “frameworks”

转载 作者:行者123 更新时间:2023-12-03 05:43:02 25 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




请列出允许快速编写 GUI 应用程序的 GUI 编程库、工具包、框架。我的意思是这样

  • GUI 完全在人类可读(和人类可写)纯文本文件(代码)中描述
  • 代码简洁(每个小部件/事件对 1 或 2 行代码),适用于脚本编写
  • 从代码(小部件的嵌套和事件流)可以明显看出 GUI 的结构和操作
  • 有关如何构建 GUI 的详细信息是隐藏的(例如主循环、附加事件监听器等)
  • 支持自动布局(vboxes、hboxes 等)

  • 正如答案所暗示的那样,这可能被定义为声明式 GUI 编程,但不一定如此。如果可行,任何方法都可以,易于使用且简洁。
    有一些这样的 GUI 库/工具包。它们在下面列出。如果您发现缺少合格的工具包,请扩展列表。说明该项目是否跨平台、成熟、活跃,并在可能的情况下提供示例。
    请使用此 wiki 仅讨论开源项目。
    这是迄今为止的列表(按字母顺序排列):
    软糖
    Fudgets是一个 Haskell 库。平台:Unix。状态:实验性的,但仍在维护中。一个例子:
      import Fudgets
    main = fudlogue (shellF "Hello" (labelF "Hello, world!" >+< quitButtonF))
    Fudgets example screenshot
    (来源: picamatic.com)
    GNUstep 复兴
    Renaissance允许用简单的 XML 描述 GUI。平台:OSX/GNUstep。状态:GNUstep 的一部分。下面是一个例子:
    <window title="Example">
    <vbox>
    <label font="big">
    Click the button below to quit the application
    </label>
    <button title="Quit" action="terminate:"/>
    </vbox>
    </window>
    Renaissance example screenshot
    (来源: picamatic.com)
    HTML
    基于 HTML 的 GUI (HTML + JS)。跨平台,成熟。完全可以在客户端使用。
    寻找一个不错的“helloworld”示例。
    HTML GUI example
    (来源: picamatic.com)
    JavaFX
    JavaFX可用于独立(桌面)应用程序以及 Web 应用程序。不完全跨平台,不完全开源。状态:1.0 版本。一个例子:
      Frame {
    content: Button {
    text: "Press Me"
    action: operation() {
    System.out.println("You pressed me");
    }
    }
    visible: true
    }
    需要截图。
    小鬼
    Phooey是另一个 Haskell 库。跨平台(wxWidgets),HTML+JS 后端计划。成熟而活跃。一个例子(比 helloworld 多一点):
      ui1 :: UI ()
    ui1 = title "Shopping List" $
    do a <- title "apples" $ islider (0,10) 3
    b <- title "bananas" $ islider (0,10) 7
    title "total" $ showDisplay (liftA2 (+) a b)
    Phooey example screenshot
    (来源: picamatic.com)
    python 卡
    PythonCard在 Python 字典中描述 GUI。跨平台(wxWidgets)。一些应用程序使用它,但该项目似乎停滞不前。有一个事件叉。
    我跳过 PythonCard example因为它对于比赛来说太冗长了。
    PythonCard example screenshot
    (来源: picamatic.com)

    Shoes对于 ruby 。平台:Win/OSX/GTK+。状态:年轻但活跃。一个最小的应用程序看起来像这样:
      Shoes.app {
    @push = button "Push me"
    @note = para "Nothing pushed so far"
    @push.click {
    @note.replace "Aha! Click!"
    }
    }
    Shoes example screenshot
    (来源: picamatic.com)
    Tcl/Tk
    Tcl/Tk .跨平台(它自己的小部件集)。成熟(甚至可能过时)且活跃。一个例子:
      #!/usr/bin/env wish
    button .hello -text "Hello, World!" -command { exit }
    pack .hello
    tkwait window .
    Tcl/Tk example screenshot
    (来源: picamatic.com)
    用户界面
    tekUI对于 Lua(和 C)。平台:X11、DirectFB。状态:Alpha(可用,但 API 仍在发展)。一个例子:
      #/usr/bin/env lua
    ui = require "tek.ui"
    ui.Application:new {
    Children = {
    ui.Window:new {
    Title = "Hello",
    Children = {
    ui.Text:new {
    Text = "_Hello, World!", Style = "button", Mode = "button",
    },
    },
    },
    },
    }:run()
    tekUI helloworld screenshot
    (来源: picamatic.com)
    树马拉松
    Treethon对于 Python。它在 YAML 文件(YAML 树中的 Python)中描述了 GUI。平台:GTK+。状态:正在进行中。一个简单的应用程序如下所示:
      _import: gtk
    view: gtk.Window()
    add:
    - view: gtk.Button('Hello World')
    on clicked: print view.get_label()
    Treethon helloworld screenshot http://treethon.googlecode.com/svn/trunk/treethon_gtk_tutorial/base.png
    Richard Jones 尚未命名的 Python 库:
    这个还没有发布。这个想法是使用 Python 上下文管理器( with 关键字)来构建 GUI 代码。见 Richard Jones' blog详情。
    with gui.vertical:
    text = gui.label('hello!')
    items = gui.selection(['one', 'two', 'three'])
    with gui.button('click me!'):
    def on_click():
    text.value = items.value
    text.foreground = red
    XUL
    XUL + Javascript 可用于创建带有 XULRunner 和 Mozilla 扩展的独立桌面应用程序。成熟、开源、跨平台。
      <?xml version="1.0"?>
    <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
    <window id="main" title="My App" width="300" height="300"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <caption label="Hello World"/>
    </window>
    XUL helloworld example
    (来源: picamatic.com)

    感谢您的贡献!

    最佳答案

    不是开玩笑,而是 HTML。

    它是跨平台的,并在一个简单的文本文件中总结了 gui 布局。它绝对是成熟的,并且很好理解和有据可查。

    有很多方法可以为动态内容制作 HTML 文件模板,如果您不喜欢尖括号,还有其他方法可以将自定义语法转换为 HTML。

    使用 Javascript 的客户端脚本,使用 PHP/Ruby/Python/Perl 的服务器端脚本。

    它并不适合所有用途,但对许多人来说,它已经足够了。也没有理由必须提供它 - 如果需要,您可以将 HTML 文件分发给您的客户 - 参见 TiddlyWiki一个很好的例子,说明可以去哪里。

    关于user-interface - 非常简单、简洁和容易的 GUI 编程 “frameworks”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/470468/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com