是否有 Tkinter / 网格几何图形的 GUI 设计应用程序? [关闭]

Posted

技术标签:

【中文标题】是否有 Tkinter / 网格几何图形的 GUI 设计应用程序? [关闭]【英文标题】:Is there a GUI design app for the Tkinter / grid geometry? [closed] 【发布时间】:2012-12-18 00:13:17 【问题描述】:

是否有人知道一个 GUI 设计应用程序,它可以让您选择/拖放小部件,然后使用 grid 几何管理器通过适当的 Tkinter 调用和排列将该布局转换为 Python 代码?到目前为止,我已经找到了一些我可能最终会使用的非常好的选项,但它们会使用 packplace 生成代码。

=========

编辑:请注意,这不是寻求“建议”本身,而是事实调查。我在问这样的应用是否存在。

=====

在你说之前:是的,我知道 Tkinter 很容易学习,是的,我已经找到了多个在线资源来帮助我这样做,而且我已经开始着手了。这不是要避免学习的努力,而是要使用正确的工具来完成工作。我很久以前就发现,当项目超过一定规模时,那些用于编码程序逻辑的拖放小部件环境太笨拙且难以管理——对于更大的东西,构建和维护逻辑更容易当它是纯文本时。最近,我发现设计 GUI 的情况正好相反。编写文本在一定程度上是可行的,但是当您有一个包含 30 或 40 个小部件的主窗口,以及几个具有相似复杂性的侧窗口时,如果您可以图形化设计而不是全部输入,它会变得更快、更容易.

【问题讨论】:

我已经看过的选项(就像我说的那样)使用packplace,但不能同时使用。完美的布局应用程序将 IMO 支持在三个管理器中的任何一个中生成代码。我会自掏腰包支付一些不错的钱来获得它。 那么,您提到的这些其他不错的选择是什么,但没有与我们其他人分享! (Wincing) 抱歉,5 年后我不记得了……即使我记得,我通过 Google 找到的选项现在可能已经失去支持,或者他们已经已被更新和改进的实用程序所取代。我建议您自己进行搜索,无论如何,这将为您提供更好、更最新的信息。 我进行了相当不错的搜索。我发现的所有东西似乎都需要具有模糊依赖关系的广泛设置配置,或者需要付出大量努力才能……有点……几乎可以工作……有时。我真的只是想把它当作一个学习工具,这样我就可以以图形方式构建一些东西,然后检查代码来学习如何手动完成它。我最终只是磨磨蹭蹭。 【参考方案1】:

除了其他答案中已经给出的选项外,还有一个当前更活跃、最近的开源项目,名为pygubu

这是作者取自github仓库的第一个描述:

Pygubu 是一个 RAD 工具,可以快速轻松地开发用户 python tkinter 模块的接口。

设计的用户界面保存为 XML,并使用 pygubu builder 这些可以根据需要由应用程序动态加载。 Pygubu 的灵感来自 Glade。


Pygubu hello world program 是一个介绍性视频,介绍如何使用 Pygubu 创建第一个项目。

以下是 OS X Yosemite 10.10.2 上 pygubu 设计器最新版本的界面图像:

我一定会试一试,并为它的发展做出贡献。

【讨论】:

我刚刚在win10下试了一下,frame+labl+Entry。通过项目示例和一些对象知识很容易理解。【参考方案2】:

您拥有 VisualTkinter,也称为 Visual Python。 发展似乎并不活跃。您有sourceforge 和googlecode 站点。网址is here。

另一方面,PAGE 看起来很活跃,可以在 python 2.7 和 py3k 中运行

正如您在评论中指出的那样,这些都没有使用grid 几何。据我所知,唯一这样做的 GUI 构建器可能是 Komodo Pro GUI Builder,它已停产并在 ca 开源。 2007.代码位于SpecTcl repository。

在win7上似乎可以正常安装,虽然还没有使用过。这是我电脑的截图:

顺便说一句,Rapyd Tk 还计划实施网格几何,因为它的文档中说它还没有准备好。不幸的是,它似乎“几乎”被放弃了。

【讨论】:

Visual Tkinter 和 PAGE 都是我最终可能会使用的非常好的选项,但它们使用 place 生成代码。我一直在寻找一个可以生成 grid 几何图形的应用程序。 谢谢,我在自己的搜索过程中错过了这个。它在我的 XP 虚拟机上运行良好,并且会生成基于 grid 的布局。 Rapyd Tk 已在 1.0 版中发布,但仅适用于 Python 2。作者在link 上明确表示他们无意移植到 Python 3,因此对我个人来说,这是一个完全禁止使用的区域,YMMV。 @MarkLawrence 那个版本是 2 年前的。您只能希望他们在此期间改变了对 py3k 的看法……【参考方案3】:

恕我直言,使用网格进行布局的最佳工具是方格纸和铅笔。我知道你要求某种类型的程序,但它确实有效。我已经做了几十年的 Tk 编程,所以布局对我来说很容易,但是当我有一个复杂的 GUI 时,我仍然会打破方格纸。

要考虑的另一件事是:Tkinter 几何管理器的真正强大之处在于将它们一起使用*。如果您打算只使用网格或只使用包装,那么您做错了。相反,首先在纸上设计您的 GUI,然后寻找最能由其中一种解决的模式。 Pack 是某些类型布局的正确选择,而 grid 是其他类型的正确选择。对于极少数的问题,地点是正确的选择。不要将您的想法限制在仅使用一种几何管理器。

* 使用这两种几何管理器的唯一警告是每个容器只能使用一个(容器可以是任何小部件,但通常是框架)。

【讨论】:

感谢您在选择几何管理器时提供有关“隧道视觉”的提示。到目前为止,我一直专注于 grid 以简化学习过程(仍然掌握小部件本身的窍门),但随着我更好地了解自己的方式,我可能会扩展到其他经理。这反过来又是我希望找到grid-generating 布局应用程序的主要原因。我计划使用布局应用程序快速粗略剪裁,然后手动调整生成的小部件/布局代码以微调结果。 在某些时候,您的回答似乎表明 /mixing/ grid、pack 和 place 是一件好事。不是。 @mmgp:混合包和网格不仅可以,而且可以说是获得高质量界面的最佳方式。我不认为我曾经创建过一个我没有同时使用两者的界面。唯一的规则是你不能在同一个容器中使用它们;在整个应用程序中,这不仅是可能的,而且我认为这是首选的工作方式。每个人都有长处和短处——取长补短。 @BryanOakley:你有特殊版本的 Tk,所以你可以混合网格、打包和放置在一个主容器中吗?我很确定您会回答“然后使用两个不同的主容器”。我真的看不出混合包和网格有什么好处。这个地方可能被用来做有趣的事情,但我不认为这是一个好的 GUI 做法。 在一张纸上,你不能轻易地移动或重塑事物,你必须从头开始擦除和重新绘制它们。同样,当您调整窗口大小时,您无法看到控件的行为方式。

以上是关于是否有 Tkinter / 网格几何图形的 GUI 设计应用程序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python Tkinter 在 GUI 中嵌入 Matplotlib

Python tkinter能做出好看的图形界面么

python基础 Tkinter 之 几何管理器

python基础 Tkinter 之 几何管理器

用Tkinter打造GUI开发工具(49)在Tkinter窗口上动态显示matplotlib.pyplot图形

用Tkinter打造GUI开发工具(49)在Tkinter窗口上动态显示matplotlib.pyplot图形