Ser*_*pia 5 python qt cross-platform
我对Python在Triforce中顺利运行的印象很深刻.在Windows中运行的程序将在Linux中运行.这种情绪是否正确?
话虽如此,如果我在QT For Windows中创建我的应用程序,它是否会在Linux/Mac中运行完美?
谢谢.
是.不,也许吧.另请参阅:Java和"一次编写,随处运行".
文件系统布局,外部实用程序,您可能使用停靠图标,字符编码行为等等所做的任何事情都可能会遇到麻烦.
使用Qt和Python,并极力避免事情,似乎依赖于Windows的特定库或行为,尽可能将运行在Mac和Linux更容易申请,但对于任何不平凡的申请,第一次有人尝试它,它会炸掉他们的脸.
但是通过仔细选择框架和库,使应用程序跨平台工作将更像是修复bug而不是传统的"移植".
正如其他海报所提到的,关键问题是确保您永远不会触及不同的非Qt非跨平台API.或者甚至是一个不同的非Qt跨平台API,如果你使用Qt,你需要承诺它,它是一个全面的框架,并且在大多数情况下坚持使用Qt比去其他任何东西都容易.有一些很好的优点,因为程序中的基本原语将在整个地方以相同的方式工作.(即您的网络代码中的QString将与您的接口代码中的QString相同.)可移植性,如果您保留在Qt提供的API中,它应该在多个平台上工作.
在某些领域,您可能需要调用某些Qt函数,这些函数可以提供特定的跨平台调整,这些调整对某些平台比其他平台更重要(例如停靠图标),并且您不会立即在所有三个平台上都拥有完美的应用程序.但总的来说,你应该保持非常接近于编译和运行所有三个应用程序的应用程序.(尝试使用qmake或类似的构建系统,因为Qt应用程序的构建过程因平台而异.不同的标志等)
将Qt与其他API(如OpenGL)混合时会出现一些奇怪的问题,特别是Windows锁定GL上下文的方式与OS X和Linux的方式不同,因此如果您打算将OpenGL与多个线程一起使用,请尝试定期编译在其他平台上确保没有任何东西完全被破坏.这也将快速指出您可能无意中使用非跨平台系统API的区域.
我和一个团队一起使用Qt来构建一个多线程的3-d多人实时网络游戏(阅读:充分利用Qt的许多领域的非平凡应用程序)我们只是被效果所震撼Qt支持多种平台的能力.(我们在针对Windows的OS X上开发,我经常确保它仍然在Linux上运行.)我们只遇到了一些特定于平台的错误,几乎所有这些错误都源于使用非Qt API(如OpenGL).(这应该告诉你一些事情,OpenGL比使用Qt更难以使用跨平台.)
在体验结束时,我们很高兴我们需要花费很少的时间来处理特定于平台的错误.令人惊讶的是,我们能够为Windows制作GUI应用程序,几乎没有一个团队实际上通过该项目将其用作主要开发平台.
但要经常进行早期测试.我不认为你编写整个应用程序然后测试的方法是个好主意.使用Qt是可能的,但如果您没有编写可移植代码的经验和/或Qt的新手,则不太可能.