【问题标题】:pygame vs tkinter.pygame 与 tkinter。
【发布时间】:2012-05-19 19:14:24
【问题描述】:

我一直在网上搜索并阅读有关 Python 中的 GUI 开发的信息,并了解到 Tkinter 是 Python 中最好的 GUI 工具包之一。但我也知道 Pygame 是一个可用于 GUI 的库。由于我对编程还很陌生,有人可以解释一下 Pygame 和 Tkinter 之间的区别,哪些应该在什么场合使用。对于国际象棋引擎 GUI,这将是一个更好的选择。 非常感谢您。

【问题讨论】:

  • 您的目标是什么?您是否在考虑 3D 国际象棋引擎,或者是否足够具有象征意义的 2D 自上而下的棋盘视图?
  • 我的目标是编写一个简单的自上而下的国际象棋图形用户界面,其中棋子可以通过鼠标移动。谢谢。
  • @geekkid:您的 GUI 听起来很简单,可以使用 Tkinter 或 PyGame 或几乎任何其他 GUI 工具包轻松完成。我会说专注于编写国际象棋引擎,因为这可能会被证明是最困难的部分。
  • 我会为这个项目选择 Tkinter。 Tkinter 相对简单易学,虽然它的图形可能性有限,但Canvas widget 绝对足以满足您的需求。

标签: python tkinter pygame


【解决方案1】:

首先,tkinter 绝对不是 Python 的最佳 GUI 工具包。它是最简单的之一,通常与 python 解释器一起提供。但它不如 Qt、wx 或 Gtk 强大。

pygame 是 - 正如它的名字所说 - 一个包,旨在允许非常容易地在 python 中创建游戏,而不是创建 GUI。因此,它提供了事件处理、图形声音绑定和其他一些对编写游戏有用的东西,并且它是在 SDL 之上编写的。

因此,如果您想编写 GUI 应用程序,请不要使用 pygame。

另一方面,GUI 工具包也可用于编写游戏。一般来说,我会说它们比 pygame 之类的多才多艺,但它们并没有真正的可比性。这完全取决于您要编写的应用程序。选择正确的工具通常非常重要。

【讨论】:

  • 非常感谢。我的目标是编写一个自上而下的国际象棋 GUI,最终可以与一个简单的国际象棋引擎相结合,并且应该通过鼠标移动棋子。你对类似的事情有什么具体的建议吗?
  • 我会先处理引擎,确保将其与实际 UI 分开。然后,我可能会使用 pygame 来显示动作并接受用户交互。
  • Qt 会由我选择使用PyQt4Pyside,但这是我个人的选择。在任何提到的 gui 工具包中,像国际象棋这样的基于网格的游戏并不难。
  • “Tkinter 绝对不是 Python 的最佳 GUI 工具包”是高度主观的,不应作为事实呈现。说它不如 wx 强大也是主观的——你如何定义“权力”?有些事情我可以在 Tkinter 中做而我在 wxPython 中做不到(反之亦然)。这是不同的,客观上没有好坏之分。
  • 我同意。 Tkinter 可能没有其他 GUI 具有的功能,例如 PyQt 或 Wxpython(例如 webkit),但它确实有优势。初学者可以在几个小时内学习 Tkinter,而 PyQt 和 Wxpython 需要更长的时间(只是因为额外的功能,如果没有别的)。 Tkinter 与 Python 一起打包,因此无需开始安装任何东西。我可以继续,但我只想说,仅仅因为 Tkinter 不支持某些东西(还没有?),它并没有使它成为最糟糕的 Python GUI,这意味着它不适合已经设置的任务。
【解决方案2】:

Pygame 通常用于创建游戏,但我建议使用街机库。 Pygame 不会帮助您创建 GUI。相反,您应该使用专为 GUI 设计的 tkinter。对于您的项目,我建议使用 tkinter。 Tkinter 帮助你创建标签、按钮和东西 pygame 帮助你制作图形和东西

【讨论】:

    猜你喜欢
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-18
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多