【问题标题】:GUI developement using Python and tkinter vs Qt and C++使用 Python 和 tkinter 与 Qt 和 C++ 进行 GUI 开发
【发布时间】:2013-12-13 22:26:23
【问题描述】:

我正在尝试决定使用什么来继续开发我的应用程序。 我有一些在 MFC 文档/视图体系结构中使用 C++ 的经验,并且发现它非常令人沮丧。我觉得我一直在与框架作斗争,也觉得我的应用程序不适合 doc/view 架构。 (我现在知道,如果我知道如何以这种方式构建它,它可能会很合适。)

所以我决定尝试 Python 并最终使用 tkinter。这更容易学习并且没有那么多挫折。 (虽然它有一些不同的新东西。)我想我在此过程中学到了更多关于面向对象和设置类的知识。但我现在担心它是一种解释型语言,而且就我的目的而言,它比 C++ 慢得多。

所以我一直想回到 C++ 而不是 MFC。我已经阅读了一些关于 wxWidgets 和 Qt 的内容。

以下是我想知道的事情:

  1. 对于 wxWidgets 和 Qt,他们是使用资源编辑器来设置 GUI 的布局还是像 Python 和 tkinter 那样直接公开代码。

  2. wxWidgets 或 Qt 是否会生成任何解释代码,还是最终将所有内容编译为本机机器代码?

谢谢

【问题讨论】:

  • 这两个都没有被解释。在 Qt 的情况下,如果它生成代码,它生成的代码是 c++ 代码,使用 c++ 编译器编译为本地机器代码。
  • Qt 有一个资源编辑器。称为 QtDesigner。您可以在其中设计您的表单、小部件 .. 或直接在 c++ 中编写代码。
  • 我只是短暂地使用过 wxwidgets(那是几年前的事了),所以我不能进一步评论。
  • 你需要真正的多线程吗?那么在这种情况下你不能使用 python,因为这里一次只有一个线程处于活动状态(在默认的 cPython 实现中,这是常用的)。如果您可以将多线程部分外包给一个库,您可以与其他线程并行运行它。使用 python 的 MT 很复杂。您可以通过搜索“全局解释器锁”来阅读或了解它。

标签: c++ python qt wxwidgets


【解决方案1】:
1. Both

Qt 和 wxWidgets 具有可用的 GUI 构建器。对于 Qt,会生成一个 XML 文件,该文件由 uic 解析以生成 C++ 代码。 wxWidgets 有several designers available,它们之间会有所不同,但如果它们不都遵循相同的模式,我会感到惊讶。

不管有多少人,包括我自己,都选择手工编写代码 - 不需要使用 UI 设计师。使用术语“资源编辑器”时要小心,因为 Qt 有一个资源编辑器,它不用于设计 GUI。

2.  Both

Qt 和 wxWidgets 不仅仅是 GUI 框架——它们是跨平台的工具包。鉴于此,Qt 正在通过使用QtQuick and the QML language 进行 GUI 开发来推动 GUI 和后端之间的明确分离。当然,Qt5 仍然完全支持基于 C++ 小部件的开发。 wxWidgets 没有我所知道的等价物。

另外,如果你喜欢 Python 但不喜欢 tkinter,Qt 和 wxWidgets 都有 Python 绑定。

【讨论】:

  • 对于 Qt,资源编辑器与 Designer 集成在一起,允许您指定 GUI 表单元素所需的资源文件(例如图标)。所以它肯定与 GUI 有关。
  • 资源系统只是在工件中存储任意数据的一种方式,因此可以像访问本地驱动器一样访问它——事实上,您将文件存储在其中,GUI 可以使用(或QML 文件的 GUI)是无关紧要的。这两个系统既不捆绑也不依赖,编辑器可以从设计器中访问,只是为了方便。但是,我的句子并不清楚,因此我将对其进行编辑。
猜你喜欢
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
相关资源
最近更新 更多