【问题标题】:how multi-platform is QtQt有多平台
【发布时间】:2016-09-12 20:06:40
【问题描述】:

我打算制作一个简单的程序,并考虑在 Qt 中制作它。我读到用 Qt 制作的程序可以在不同的操作系统中运行。这是否意味着当我为 Windows 创建桌面应用程序时,它可以在智能手机中执行?我只是不适合我的想法。例如,我没有 iOS 经验,但据我所知,您需要有一台 Mac 电脑或至少对 Windows 电脑进行特定配置才能开发应用程序。现在,如果我在标准 Windows 中使用 Qt(无配置。),该程序是否真的可以在 iOS 上运行,并且是否可以在不进行任何修改的情况下将其转移到 Appstore?我一直只在 Windows 中工作,主要是在 Java 中。 “多平台”的概念让我考虑开始在 Qt 中进行开发,但我不确定,因为我不太了解它。如果您能澄清一下,我将不胜感激。

【问题讨论】:

  • 为什么不从 Qt 网站构建示例,看看效果如何?
  • 您的问题非常广泛。 stackoverflow 的目的是解决具体的编程问题。
  • 好吧,如果我开始使用 Java 进行开发,我的程序将最多结束。在一个月;如果我考虑 Qt,则需要更长的时间。在开始之前,我想确保它确实是简单的 Qt 头文件和纯 C++,并且可以按预期工作。进入不熟悉的环境需要额外的时间。我需要确保付出这些努力是值得的。如果最后我得到的结果是 Windows 程序在 Linux 上也能正常工作,并且需要付出很多努力才能适应其他系统,我会选择 Java。
  • 我需要知道的是,在我完成所有教程等的 Windows 开发后,最后,哪些平台会运行该 .exe 文件以及传输该 .exe 文件有多复杂进入移动平台
  • @UserRR ,您不会在 Windows 以外的平台上运行 .exe。您用 Qt 编写的 C++ 代码可以在 Qt 支持的所有平台上编译。 Qt 的标语是“一次编写,到处编译”。

标签: ios qt app-store multiplatform


【解决方案1】:

我了解到用 Qt 制作的程序可以在不同的操作系统中运行

没有。您必须在每个目标系统上重新编译您的应用程序。

Java 是不同的。 Java 代码被编译成由 Java 虚拟机 (JVM) 运行的特殊二进制文件。因为 JVM 是多平台的,所以您通常可以在任何有 JVM 可用的平台上运行 Java 应用程序。

当您编译一个最有可能用 C++ 编写的 Qt 应用程序时,它会链接到操作系统库,因此该应用程序只能在该操作系统上运行。

现在,Qt 是一个多平台的 SDK,您使用 Qt 编写的代码可以编译为Qt supports 的所有平台,结果将相同或相似。我之所以这么说是因为,例如 Qt 试图模拟操作系统的原生小部件。您将不得不根据目标操作系统测试并可能调整您的应用程序。移动用户界面与桌面用户界面非常不同,因此您可能需要为移动设备单独重新实现应用程序的 GUI。

【讨论】:

  • 不,不。 Qt 不模拟任何东西,如果这就是你的意思,QT 会附带它自己的渲染器。虽然它可能看起来不像正在运行的操作系统,但是在所有受支持的操作系统上看起来都一样。所以你通常只需要调整和测试一次,你可以在你选择的系统上进行,因为结果应该是一样的。最后但并非最不重要的一点是,您可以在 Linux 和 Windows 上为几乎任何平台进行编译,您只需要设置适当的编译器即可。
  • “QT 自带渲染器,如果这就是你的意思的话”,这确实是我想说的。
  • 答案并不完全正确,尽管它本来就是这样。只是向感兴趣的读者指出,有一些方法可以开发真正的多平台。 IE。如果您在 PyQt 中创建应用程序,它将在具有相同代码库的所有平台上运行,只要设置了正确的 python 环境并满足所有依赖项。
【解决方案2】:

基本代码在所有平台上都相同,但您需要 xcode 和 Mac 才能将应用程序构建到 iOS 平台。

【讨论】:

  • 基础代码和后者有什么区别?
  • 即如果存在 Qt 框架未涵盖的 iOS 独有功能,则必须在代码中创建“仅限 iOS”案例。尝试运行示例以了解 Qt 如何处理多平台。
  • 谢谢。我需要在 Mac 中添加仅 IOS 代码吗? mac 有没有提供组合这些代码的工具?
  • 取决于你的编码。您应该研究 Qt 框架功能,它涵盖了哪些特定平台的功能。但是无论如何,您都需要一个带有 x 代码的 mac 才能将您的代码部署到 iPhone(即)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 2020-10-05
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
相关资源
最近更新 更多