【发布时间】: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