什么是 QT 插件?
Posted
技术标签:
【中文标题】什么是 QT 插件?【英文标题】:What is a QT Plugin? 【发布时间】:2010-05-10 13:33:53 【问题描述】:qt插件和定制的qt库有什么区别?
谢谢。
【问题讨论】:
【参考方案1】:AFAIK Qt 插件作为共享库实现(Unix/Linux 上的.so 和 Windows 上的 DLL)。它们之间的区别一般与 plugins 和 libraries 相同。
这意味着,插件架构独立于链接方法。 它们往往被认为是插件/动态链接和非插件/静态链接。
核心应用程序指定接口和数据交换合约(即 API),单独的模块可以通过它与应用程序交互并通过应用程序公开功能。仅在 DLL 中提供新模块并不能满足应用程序本身发现这些 DLL 并知道如何执行其中逻辑的方法的需求。这是插件架构的本质。通常,DLL 只公开一系列过程或函数。外部进程无法直接访问 dll 中的变量、类、对象。编写插件涉及将大部分或所有相关代码移动到 DLL 中,其中所有变量和对象都可以直接引用。
类似于 Eclipse 的东西,您将插件放置在预定义的目录中,下次单击某个菜单时,您会看到新条目。所有这一切都无需重新启动您的app
或运行exe
的新版本。
【讨论】:
【参考方案2】:您称为 Qt 插件的功能正式地是 Qt 内部的一个框架,它允许开发人员为他们的应用程序提出一个插件系统。 Qt Plugin 处理插件的动态加载,应用程序可以通过插件接口使用这些插件。您可以查看Qt Plugin documentation 了解更多信息和示例。
【讨论】:
以上是关于什么是 QT 插件?的主要内容,如果未能解决你的问题,请参考以下文章