文章目录

  • 一、前言
  • 二、效果展示
  • 三、嵌入插件UI
    • 1、插件接口文件添加UI指针
    • 2、插件子项目工程建立UI类
    • 3、插件类中创建UI类、使UI指针指向创建的UI类
    • 4、插件元信息中添加widget键值对,指示插件UI嵌入主界面中的位置
    • 5、主界面中预留接入点tabWidget
    • 6、插件管理器中元数据处理函数中,如果存在widget键值对,则发送信号到主界面MainWindow中
    • 7、在MainWindow的界面嵌入槽函数中将插件中的widget嵌入到指定的接入点

一、前言

通过上篇博客:Qt插件开发总结4–主界面添加插件菜单,已经介绍了如何将插件Action注入到主框架MainWindows中。

其实,插件式程序的整体流程如下图所示:

我们再来回顾一下Qt插件开发总结4–主界面添加插件菜单的整体过程:

  • 主框架加载自身的配置(初始化);
  • 插件元数据中新增action键值对;
  • 插件类中存储action名称列表和action槽函数列表;
  • 主框架扫描插件、加载插件、读取插件元数据;
  • 当发现元数据中有action键值对时,将(插件-actionName)键值对存入插件管理器的映射表中,将action列表以信号(SIGNAL)的形式发出,MainWindow中的(SLOT)接收;
  • 在MainWindow的槽函数中,遍历action列表,创建QAction,加入MainWindow预留的menuBar中,所有插件QAction统一绑定到同一个槽函数;
  • 在插件QAction槽函数中,通过信号发送者获取QAction指针,然后获取该QAction的文本;
  • 使用该文本去插件管理器的映射表中匹配到该QAction对应的插件;
  • 然后遍历插件内部的action名称列表,定位下标;
  • 因为action槽函数列表下标和action名称列表下标对应,所以直接通过该下标去访问插件内部的action槽函数列表对应的指针;
  • 这样就实现了点击MainWindow中的菜单项,调用了插件中的槽函数;

二、效果展示



三、嵌入插件UI

基本的思想就是:1、在插件元数据中定义插件UI嵌入到哪里;2、通过插件中的UI指针进行嵌入

1、插件接口文件添加UI指针

2、插件子项目工程建立UI类

3、插件类中创建UI类、使UI指针指向创建的UI类


4、插件元信息中添加widget键值对,指示插件UI嵌入主界面中的位置

5、主界面中预留接入点tabWidget

6、插件管理器中元数据处理函数中,如果存在widget键值对,则发送信号到主界面MainWindow中


7、在MainWindow的界面嵌入槽函数中将插件中的widget嵌入到指定的接入点

Qt插件开发总结5--主界面嵌入插件UI相关推荐

  1. chrome浏览器插件开发-在当前网页中嵌入插件页面

    chrome浏览器插件开发-在当前网页中嵌入插件页面 既然想嵌入插件页面就是需要写html和css 在myPlugin中创建contentCss文件夹,里面创建index.css文件 在manifes ...

  2. 使用java和qt开发远程控制系统-主界面设计

    首界面效果如图 界面就比较简单,拖拉几个控件,设置一下样式ok,不得不说QT这个QSS弄的还是可以,虽然明显是抄袭CSS,语法基本一样,但就是香,比微软那MFC好用太多了. 整个界面还增加了一个标题栏 ...

  3. Qt实现360安全卫士主界面(中央窗体)

    中央窗口可以分为左右两部分,左半边由QWidget实现,包含三个QLabel,一个QPushButton,QLabel主要用来显示图片,文本信息,还有一个按钮负责"立即体验". 右 ...

  4. Qt界面导航插件QtitanNavigation最新版亮点解析:添加按钮灯光效果,动态更炫酷

    QtitanNavigationDesignUI实现了Digia Qt.C++的导航设计和Fluent Design UI概念 QtitanNavigationDesignUI组件是一组GUI控件,这 ...

  5. QT设计器主界面中文介绍

    在Qt程序开发过程中,除可以通过手动写代码实现软件开发功能外,还可以通过Qt的GUI界面设计器(Qt Designer)进行界面的绘制和布局.该工具提供了Qt的基本可绘制窗口部件,如QWidget.Q ...

  6. qt界面嵌入web_使用Qt WebAssembly而不是JavaScript创建Web用户界面

    qt界面嵌入web 当我第一次听说WebAssembly以及使用Qt创建Web用户界面的可能性时(就像在普通C ++中一样),我决定更深入地研究该技术. 我的开源项目Pythonic完全基于Pytho ...

  7. QT Desinger设计程序主界面 PyUIC生成.py

    我们在PyCharm安装配置Qt Designer+PyUIC教程中已配置好了PyCharm+QTDesigner+PyUIC环境 这里在此基上我们演示如何使用这些工具,编写一个图形界面程序: 程序主 ...

  8. python登陆成功页面跳转_Python QT由登陆界面到主界面

    在使用Python QT开发界面的时候,会出现从登陆界面到主界面的一个切换问题.如下所示,用户输入用户名和密码后,如果用户名和密码匹配,则会跳转到主界面,此时登陆界面消失. 首先需要定义自己需要的对话 ...

  9. Qt编写主界面顶部和左侧导航

    界面效果: 资源文件 :  Qt编写主界面顶部和左侧导航代码及资源文件 (http://www.qtcn.org/bbs/read-htm-tid-65515.html) 1.工程目录 2.main. ...

最新文章

  1. 在Rust代码中编写Python是种怎样的体验?
  2. oracle 查询字段除了as,Oracle中怎样查询数据表的哪个字段是主键
  3. WPF数据绑定(1-简单数据绑定)
  4. pytorch 笔记:torch.distributions 概率分布相关(更新中)
  5. 可视化计算java_Java可视化计算器
  6. 关于archlinux下的ralink5370网卡
  7. MinGW找不到Gcc的解决方法
  8. jq使用教程05_ 新手也能用的安装版本,30秒点选即可安装完成,不需配置Python环境
  9. Tomcat服务器搭建及测试教程(1),腾讯技术官发布的“神仙文档”火爆网络
  10. go给Linux安装mysql_Linux安装MySQL-Go语言中文社区
  11. 三星s20计算机怎么添加到桌面,三星s20+怎么分屏?三星s20系列多窗口分屏设置操作步骤...
  12. 计算机分子模拟聚乙烯,聚乙烯结晶及拉伸过程的分子动力学模拟
  13. MD9 入门 制作衣服 笔记
  14. Java性能优化面试题汇总
  15. (一)文件系统-ext4特性
  16. 计算机表格制作ppt,成为 PPT 表格制作高手,就是这么简单!
  17. 《用于预测蛋白质-配体结合亲和力的结构感知交互图神经网络》
  18. 世界杂志排行TOP(1-100)
  19. 命运更喜欢将丰硕约果实馈赠给那些含着泪微笑的灵魂
  20. 简单两步解决UCenter忘记创始人UCenter Administrator密码

热门文章

  1. 如何辨别行货手机和水货手机
  2. 利用Excel进行数据分析一(基础学习)
  3. 基于微信小程序的大学选修课考勤签到系统设计
  4. springboot添加图片验证码(拦截器)
  5. 测试之路 pytest接口自动化框架-pytest基础使用
  6. PHP写动物世界,动物世界引发我对生命的思考
  7. v-show的使用隐藏与显现
  8. CVPR 2020 论文大盘点-图像分割完整篇
  9. 面试官的哪些举动暗示你会通过面试呢
  10. 2022上海纺织面料及辅料展览会