用于扩展Qt本身的插件(上)

Qt自身插件

  • 引言
  • 示例
    • 插件与应用插件的程序作为整体
    • 插件和应用插件的程序单独存在
    • 实现插件
    • 编写测试插件的程序
    • 应用插件
    • 运行结果

引言

用于扩展qt自身的插件按照我的理解分为两种:
1. 直接扩展Qt自身,无需在QtCreator的设计器中加载;
2. 扩展Qt自身,同时需要在QtCreator的设计器中加载,类似于自定义控件,可像Qt的基本控件那般在设计器中直接展示,拖拽使用,具有属性,信号槽等。

本文记录扩展Qt自身的插件,但不用在QtCreator的设计器中加载的插件。

示例

本示例时基于样式进行扩展,自定义自己的样式种类。
有两种创建项目的方式,一种是将插件与使用插件的程序分别作为子项目,整体包含在一个项目文件夹中;另一种是将插件和使用插件的程序分别作为单独的项目。
下面分别记录下创建过程。

插件与应用插件的程序作为整体

器效果就是这样:
在这里插入图片描述
插件Plugin与StyleWindow分别作为StylePlugin3的子项目,两个位于用一个文件夹StylePlugin3下。方便管理。
其创建是这样的:
在QtCreator中点击菜单栏的文件-》新项目-》其他项目-》子目录项目。弹出:
在这里插入图片描述
输入项目名称StylePlugin3,选择合适的创建路径,点击下一步按钮。弹出:
在这里插入图片描述
选择想要使用的编译器的种类,注意与使用该插件的应用程序的编译器保持一致即可。我这里选择的是Qt6.6.0 MSVC2019 64bit,点击下一步按钮,弹出弹窗后,点击完成&添加子项目按钮,弹出新建子项目弹窗:
在这里插入图片描述
选择其它项目-》Qt4设计师自定义控件,点击选择按钮。弹出:
在这里插入图片描述
输入名称Plugin,创建路径选择默认的路径,点击下一步按钮。弹出弹窗后,在下面的控件类下面输入类名:SimpleStyle。注意类名采用驼峰命名。默认是选择包含项目的,需手动勾选创建代码框架,会生成对应的下图中所示的系列文件名,此时可在图标文件项点击后面的浏览按钮选择自己要添加的图标图片。
在这里插入图片描述
也可在说明项中输入相应的组名,工具提示,已经控件是否是一个容器(即控件中是否可以放入、拖入其他控件)。在这里插入图片描述
也可编写属性。
在这里插入图片描述
之后点击下一步按钮。这里我没有修改属性,也没有该说明,然后点击下一步按钮,一路操作,直到点击完成按钮。
此时项目的结构图如下:
在这里插入图片描述
插件项目Plugin创建好之后,接下来创建使用插件的应用程序。
在项目文件夹StylePlugin3上右键,弹出菜单中选择添加子项目-》Application(Qt)->Qt Widget Application,创建基于Qt的应用程序。
在这里插入图片描述
后面的步骤就不用说了,项目名为StyleWindow,路径采用默认的就行,基类为QWidget,采用默认声的Widget就行,不要勾选ui,该项目不用ui界面,一路操作,直到完成。
注意编译器选择与插件项目的编译器相同的编译器。

此时项目结构如下:
在这里插入图片描述
至此第一种将插件与使用插件的应用程序放在同一个目录下的项目已经创建完成。

插件和应用插件的程序单独存在

另一种将插件与使用插件的应用程序各自作为一个项目的创建如下。
首先打开QtCreator,选择菜单栏的文件-》新建项目-》其它项目->子目录项目,点击选择按钮。弹出:
在这里插入图片描述
输入项目名称StylePlugin,点击下一步按钮。弹出窗口中选择你想使用的编译器,点击下一步按钮,弹出弹窗中点击完成&添加子项目。弹出:
在这里插入图片描述
选择其他项目-》Qt4设计师最定义控件,点击选择按钮。弹出:
在这里插入图片描述
输入名称Plugin,点击下一步按钮。弹出:
在这里插入图片描述
在控件类下面输入类名SimplePlugin,勾选代码框架,点击下一步按钮。
在这里插入图片描述
一路下一步,直到完成。
项目结构如下:
在这里插入图片描述
这时插件创建的过程,接下来创建使用插件的应用程序。
其实质就是创建一个基于Qt的应用程序,菜单栏中点击文件-》新建项目-》Qt Application->Qt Widget Application,后面的就不细述了,就是创建一个基于Qt的应用程序。
创建好之后,项目结构如下(项目名字自己起就行):
在这里插入图片描述
至此,将插件与使用插件的应用程序分别创建完成。

实现插件

项目创建好之后,接下来实现插件类中代码编写。
在按照第一种方式创建好的项目StylePlugin3中:
在这里插入图片描述
StylePlugin3.pro

TEMPLATE = subdirsSUBDIRS += \Plugin \StyleWindow

Plugin.pro

CONFIG      += plugin debug_and_release
TARGET      = $$qtLibraryTarget(simplestyleplugin3)
TEMPLATE    = libHEADERS     = simplestyleplugin.h
SOURCES     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610269.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java | Leetcode Java题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; class Solution {public int threeSumClosest(int[] nums, int target) {Arrays.sort(nums);int n nums.length;int best 10000000;// 枚举 afor (int i 0; i < n; i) {// 保证和上一次枚举的元素不相等if (i > 0 && nums…

每天学点儿Python(6) -- 列表和枚举

列表是Python中内置的可变序列&#xff0c;类使用C/C中的数组&#xff0c;使用 [ ] 定义列表&#xff0c;列表中的元素与元素之间用英文逗号&#xff08; , &#xff09;分隔&#xff0c; 但是Python中列表可以存储任意类型的数据&#xff0c;且可以混存&#xff08;即类型可以…

未来课堂革命:OpenAI 发布 ChatGPT 使用指南,探索生成式 AI 如何重塑教育景观

随着新学期的来临&#xff0c;众多初登教师舞台的 00 后们&#xff0c;也完成了他们的第一个教师身份下的暑期生活。 对于开学的抵触情绪&#xff0c;不仅学生们普遍存在&#xff0c;许多 00 后的新晋教师们也同样感同身受。某种程度上&#xff0c;这些抗拒上班的年轻教师群体…

蓝牙app设计 (方案一)app inventor

app Inventor是一款谷歌公司开发的手机编程软件。 谷歌推出一款名叫Google App Inventor的工具软件, Google App Inventor用户能够通过该工具软件使用谷歌的Android系列软件自行研发适合手机使用的任意应用程序。 而且这款编程软件不一定非要是专业的研发人员,甚至根本不需要…

Chatgpt掘金之旅—有爱AI商业实战篇|在线课程业务|(十五)

演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、AI技术创业在线课程业务有哪些机会&#xff1f; 人工智能&#xff08;AI&#xff09;技术作为当今科技创新的前沿领域&#xff0c;为创业者提供了广阔的机会和挑战。随着…

langchain txt 文档加载,分割

stuff 策略 加载 arXiv 论文&#xff0c;让模型总结前 2000 字 这里采用的是 stuff 策略&#xff0c;也就是将一大段文本。按字数分割成 N 个文本块&#xff0c;又合并成一个大的文本块。 对超大规模不友好&#xff0c;没有区分文档重要性&#xff0c;适合文档量较少场景 i…

SystemUI QuickQSPanel所在的位置

QuickQSPanel 为蓝色 位置&#xff1a; quick_status_bar_expanded_header.xml 图片&#xff1a;

Qt中播放GIF动画

在Qt应用程序中&#xff0c;如果你想在QLabel控件上播放GIF动画&#xff0c;可以使用QMovie类与QLabel配合来实现。以下是详细步骤和代码示例&#xff1a; 步骤1&#xff1a;引入必要的头文件 首先&#xff0c;在你的源代码文件中包含QMovie和QLabel相关的头文件&#xff1a;…

解决Idea中文乱码

解决 Idea 中文乱码问题的方法通常包括以下几个步骤&#xff1a; 1、调整文件编码&#xff1a;确保项目中的文件编码与 Idea 中的编码设置一致。通常情况下&#xff0c;使用 UTF-8 编码是比较合适的选择。你可以在 Idea 中通过 File -> Settings -> Editor -> File E…

集装箱5G智能制造工厂数字孪生可视化平台,推进企业数字化转型

集装箱5G智能制造工厂数字孪生可视化平台&#xff0c;推进企业数字化转型。在当下数字化转型的热潮中&#xff0c;集装箱5G智能制造工厂数字孪生可视化平台成为了推动企业转型升级的重要工具。这一平台将先进的5G技术与智能制造相结合&#xff0c;通过数字孪生技术实现生产过程…

SQL优化之EXPLAIN执行计划(转载)

目录 第一章、快速了解EXPLAIN1.1&#xff09;EXPLAIN是什么1.2&#xff09;示例 第二章、结果列说明2.1&#xff09;id 与table2.2&#xff09;select_type&#xff1a;2.3&#xff09;type2.4&#xff09;possible_keys与key2.5&#xff09; key_len2.6&#xff09;rows2.7&a…

遥感图像处理:从畸变消除到专题信息提取

​ ​ ​在遥感技术的应用中&#xff0c;图像处理是不可或缺的关键步骤。从消除各种辐射畸变和几何畸变&#xff0c;到利用增强技术突出景物的光谱和空间特征&#xff0c;再到进一步理解、分析和判别处理后的图像&#xff0c;这一过程为我们呈现了一幅幅更为真实、清晰的…