声明式GTK

8 投票
2 回答
1418 浏览
提问于 2025-04-17 08:38

简而言之:有没有可以用GTK创建声明式用户界面的库?最好是支持Python的。


我是一名Python/Django开发者,我大部分的用户界面经验都来自于网页,在网页上,声明式和松耦合的UI设计是标准做法。最近,我需要用Java/Swing做一个学校项目的GUI应用,最后我使用了SwiXML来为这个项目创建声明式的Swing布局。

我在想,Python有没有类似的选择。我对Java不太感冒,所以不打算开始开发Swing应用。在寻找Python GUI工具包时,我发现这个领域的三大主流是GTK、QT和Wx。

在这三者中,我更倾向于GTK,但我找不到用GTK创建声明式UI的方法。根据我在HTML和SwiXML的经验,我觉得基于代码的UI创建非常麻烦,我更希望不必这样做。声明式UI要灵活得多,耦合也更松散。

有没有可以用GTK创建声明式用户界面的库?最好是支持Python的。

如果没有这样的东西(我猜是没有,因为我找不到),我可能会考虑开始使用QT,尽管我不喜欢它在Linux下的默认外观。(不过也许可以自定义,让它看起来更像GTK。)

2 个回答

2

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

14

我觉得你想要的东西是 gtk.Builder。简单来说,gtk.Builder 对象可以用来加载一个 .ui 文件,这个文件里面有描述用户界面组件的xml数据,还有一些事件的回调函数,这些函数是代码需要处理的。你可以使用 glade 来创建这个 .ui 文件,这样你就不需要自己写xml了。

撰写回答