• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
    C++
  • Created over 3 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Qt Plugin.QT插件框架

QT 插件(QtPlugin)教程

QT 插件(QtPlugin)教程

为什么我们要学习插件化,其和 windows 导出 dll 有什么区别呢?

  1. 导出的动态库如果缺失,程序不能运行。但插件可以。
  2. 同一套代码,即可分别在 windows 下和 linux 下生成插件。

QT 本身提供两种插件支持,一种称为高级 API,一种称为低级 API。

  1. 高级API的作用是扩展 QT 程序本身,需要子类化 QT 提供的插件基类,例如现有的 QTSqlDriver,因此你可也以编写自己的 QTStyle 扩展 QT。
  2. 低级 API 的作用是扩展自己的程序,也就是动态库的形式,在windows下就是个dll。同时因为高级 API 基于低级 API 创建,因此掌握低级 API 用法,高级 API 的用法也不在话下。

插件管理器 Qt 本身提供了插件相关的技术,但并没有提供一个通用的插件框架!倘若要开发一个较大的 GUI 应用程序,并希望使其可扩展,那么拥有这样一个插件框架无疑会带来很大的好处。

插件系统构成 插件系统,可以分为三部分:

主系统 通过插件管理器加载插件,并创建插件对象。一旦插件对象被创建,主系统就会获得相应的指针/引用,它可以像任何其他对象一样使用。 插件管理器 用于管理插件的生命周期,并将其暴露给主系统。它负责查找并加载插件,初始化它们,并且能够进行卸载。它还应该让主系统迭代加载的插件或注册的插件对象。 插件 插件本身应符合插件管理器协议,并提供符合主系统期望的对象。 实际上,很少能看到这样一个相对独立的分离,插件管理器通常与主系统紧密耦合,因为插件管理器需要最终提供(定制)某些类型的插件对象的实例。

More Repositories

1

stock

stock股票.获取股票数据,计算股票指标,识别股票形态,综合选股,选股策略,股票验证回测,股票自动交易,支持PC及移动设备。
Python
1,255
star
2

KnowledgeGraph

knowledge graph知识图谱,从零开始构建知识图谱
Python
988
star
3

CTK-project

CTK完整教程(OSGI for C++ 实现 C++ Qt 模块化)。围绕 CTK Plugin Framework,探索 C++ 中的模块化技术,并能够基于 CTK 快速搭建 C++ 组件化框架。
C++
256
star
4

cmake-project

CMake完整使用教程。CMake教程包括一系列循序渐进的任务,介绍CMake信息,展示如何实现目标。
CMake
230
star
5

NetCoreWpfMVVMPrismSample

Prism完整透彻教程,使用 Prism Unity 实现 .NET Core WPF MVVM 学习实例教程
C#
141
star
6

ctkExample

CTK简明使用教程,介绍CTK编译、CTK框架构建使用的方法,具体架构可根据自身项目设计。
C++
21
star
7

Log4Qt-project

本文围绕 Log4Qt,探索 C++ 中的 Log4j 技术。快速了解 Log4j 内部工作机制,并能熟练使用其各个衍生品 - Log4cpp、log4cplus、log4cxx、Log4Qt。
C++
17
star
8

QxOrm-project

QxOrm 几乎支持所有的主流数据库,比如 SQLite、MySQL、PostgreSQL、Oracle、MS SQL Server、MongoDB 等。为了快速了解它的用法,我们以 SQLite 为例,来介绍一些常见的数据库操作(例如:增删改查)
C++
12
star
9

DesignPattern

设计模式(Design pattern)完整教程,通过使用场景、关键代码、优缺点、实际案例等方面来讲解设计模式及设计原则,把容易混淆的设计模式进行区别对比,保证完全弄懂掌握23种设计模式和设计模式的七大原则,不仅有助于通过软考,更有助于提高开发水平。
Java
3
star
10

myhhub.github.io

HTML
2
star
11

javaFXMDI

Java
2
star
12

BigData-Notes

Java
1
star