【问题标题】:Declarative GTK声明式 GTK
【发布时间】:2012-01-23 14:29:05
【问题描述】:

TL;DR:是否有使用 GTK 创建声明式 UI 的库?最好有 Python 支持。


我是一名 Python/Django 开发人员,我在用户界面方面的大部分经验来自网络,其中声明性、松散耦合的 UI 设计是标准的。最近我不得不为一个学校项目使用 Java/Swing 创建一个 GUI 应用程序,最终使用SwiXML 为该项目创建声明性 Swing 布局。

我问自己是否有类似的可能性用于 Python。我不是很喜欢 Java,所以我不会开始开发 Swing 应用程序。在寻找 Python GUI Toolkits 时,我最终得出的结论是,该领域的三个主要参与者是 GTK、QT 和 Wx。

在这 3 个中,我更喜欢 GTK,但我找不到任何使用 GTK 创建声明性 UI 的方法。根据我在 HTML 和 SwiXML 方面的经验,我发现基于代码的 UI 创建非常混乱,我宁愿不必那样做。声明式 UI 更加灵活且耦合更加松散。

是否有使用 GTK 创建声明式 UI 的库?最好有 Python 支持。

如果没有这样的东西(我假设,因为我找不到任何东西),我可能最终会开始使用 QT,即使我不喜欢它在 Linux 下的默认外观。 (但也许这也是可定制的,在某种程度上它看起来类似于 GTK。)

【问题讨论】:

  • 前段时间,Qt 也开始在 Linux 上正确模仿 GTK 主题。所以不再有“默认外观”了。此外,还有 Qt Quick 用于声明性 Qt UI。 (将其添加为评论,因为该问题专门针对 GTK)。
  • @marcushatchenson 哇,这看起来相当整洁!
  • @TamásSzelei 感谢您的评论。我知道声明性 Qt UI,这就是我首先提到它的原因。 “GTK 模仿”是默认行为还是必须启用?因为例如 Calibre 在我的 Linux 机器上看起来非常 Qtish(在我看来很丑)。
  • 这是默认设置。如果您运行 qt creator 并在表单上抛出一些小部件,您可以快速尝试一下。 Calibre 专门实现了一些奇怪的 UI 概念(典型的“由程序员设计”的外观),我同意它很难看。我不会称它为“Qt-ish”,而且 Qt 也没有默认外观。也许如果你安装了 KDE,它会尝试使用那种风格?我目前只有侏儒。 VLC 和 Clementine 是合适的 Qt UI 的好例子。它们在 Linux 和 Windows 中看起来都非常原生。

标签: python qt user-interface gtk declarative


【解决方案1】:

我认为您正在寻找的是gtk.Builder。基本上,gtk.Builder 对象可用于加载 .ui 文件,该文件包含描述用户界面小部件的 xml 数据以及代码应公开的事件的回调。 .ui文件可以用glade创建,所以你甚至不需要自己写xml。

【讨论】:

【解决方案2】:

看看enaml。虽然没有 GTK 工具包,但它是我所知道的唯一真正的 Python 声明性框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 2011-02-06
    • 2012-03-03
    相关资源
    最近更新 更多