繁体   English   中英

Qt是如何工作的(确切地说)?

[英]How does Qt work (exactly)?

使用Qt编写应用程序时,是否可以立即在不同的操作系统中运行? 并且(如果我错了,请纠正我)您不需要在要执行应用程序的所有不同平台上安装Qt吗?

这究竟是如何工作的? Qt是否编译到所需的平台,或者是否捆绑了一些“dll”(libs),或者它是如何做到的? 它是否与编写跨平台运行的Java应用程序不同。

如果您使用Python编写带有Python绑定的Qt应用程序,您的最终用户是否需要安装Python?

Qt(理想情况下)提供源兼容性,而不是二进制兼容性。 您仍然需要为每个平台单独编译应用程序,并使用适当的动态Qt库(它们也需要单独编译,并具有一些特定于平台的代码)。

对于您的最后一个问题,用户需要Python,Qt库和绑定库(例如pyqt),但有各种方法可以捆绑这些。

PyQT [和它的开源堂兄PySide]是一个很好的跨平台QT绑定python,但它不是一个神奇的解决方案,无需进行任何打包/安装程序维护,为所有平台运送您的应用程序。 我想也许你可能会期待一些魔力。

QT是一个用C ++编写的跨平台库。 这意味着,您可以编写一次C ++或Python(或带有绑定的其他语言)代码,并创建一个“窗口”(窗体,对话框,屏幕上的某些内容)并使用控件(按钮等等)填充它并且不必处理在Windows,Linux和Mac OS X上如何制作按钮的平台差异。

因为它是一个库,所以它可以以多种方式打包。 它可以是“静态链接”(内置于您的可执行文件/二进制/应用程序中)或“动态链接”(在Windows中称为DLL,共享库或unix / linux上的DLL或作为框架,在mac os x中)。 它并不总是“安装”在计算机上,除非它是共享库。

即使它“安装”到计算机上,该计算机上可能存在多个版本,因此将其视为计算机的扩展是不恰当的,而是对您的计算机上的应用程序(程序)的扩展电脑。

如果您对QT使用Python绑定,那么您的应用程序的安装包需要包含QT绑定的二进制文件(python扩展),基本的Python运行时环境,包括Python可执行文件和基本库,以及程序的源代码。 可以将大部分内容打包成一个“捆绑”。 例如,在Mac OS X上,所有这些都可以轻松地放入“.app”软件包中,在Windows和Linux上,我相信有一些打包和安装工具可以帮助您轻松完成。

即使您只需要为应用程序编写一次用户界面代码,您也不会神奇地获得同时在所有三个主平台上发布应用程序的能力,而无需至少进行安装程序或打包的构建。每个平台。 用户希望下载适用于Windows或Mac OS X的安装/安装包,也许对于Unix / Linux,它还取决于您安装的分发版。

感谢AdamW为此诺基亚链接提供部署信息

问题是你对“已安装”的定义。 要让Qt工作,可执行文件必须能够访问正确的库。

当然,对于每个平台,必须生成不同的可执行文件和库(请参阅Qt文档 )。

关于Python,如果要运行Python可执行文件,则必须安装它(以更传统的方式)。 例如,除非您在Windows中使用py2exe运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM