QT中自定义控件和插件大致方法
文章目录
- 前言
- 一、方法:右键提升为
- 二、方法:变为qt插件,作为ui使用
- 总结
前言
Qt中自带的控件有时候无法满足项目需求,这就需要在原有的控件或者重新编写代码。
一、方法:右键提升为
该方法主要是公司内部使用,就是需要提供源码,很多第三方库使用方法也是这样,如QCustomplot 。方法步骤上简单:
1、需要新增一个.cpp和.h文件,可以继承已有的类或者新类;
2、在已有ui界面某个控件右键提升为上述新增的类。
注意:被提升的控件与你新写的类 基类要一致。
二、方法:变为qt插件,作为ui使用
该方法主要是将控件封装,做成qt自带的拖拽式控件,比如有付费性质的控件,不想提供源码可以使用该方法。主要步骤:
1、创建QtDesigner自定义控件工程
2、编辑工程代码
在新建的工程中,新建的t类没有ui界面文件,我们要手动添加上去,如果没有ui界面文件,工程编译也可以通过,但该控件添加到ctreator后,一打开desinger工具的时候就会直接挂掉。所以需要手动删除,再添加一个ui。
3、编译工程
为了减少出错机率,此时不对界面做任何动作。
在工程头文件”test.h“中添加 “#include <QtUiPlugin/QDesignerExportWidget>”,在类名前添加”QDESIGNER_WIDGET_EXPORT“宏。
4、部署工程
将项目编译好的文件 dll和lib放到QT的分别拷贝到QT库的designer路径下和QT的IDE工具的designer路径下
5、使用
和使用库的方法一样,使用dll和lib,然后包含头文件,拖拽控件使用即可。
总结
上述两种方法各有所长,具体的用法已经在上面说明。
引用:
1、QT插件创造方法
QT中自定义控件和插件大致方法相关推荐
- 如何在Qt中调用activeX插件
如何在Qt中调用ocx插件,介绍可用的两种方法. 先说第一种方法: 使用QAxObject,设置插件的classid后就可以调用插件的方法了. QAxObject *flash = new QAxOb ...
- vue导入swiper_vue项目中导入swiper插件的方法
这篇文章主要为大家详细介绍了vue项目中导入swiper插件的方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 版本选择 swiper是个常用 ...
- Qt例程-Qt中使用CAD插件
Qt例程-Qt中使用CAD插件 1.插件下载及注册 2.使用插件 1.插件下载及注册 到梦想CAD官网下载插件,官网地址:https://www.mxdraw.com/download.html,下载 ...
- 在Qt中设置程序图标的方法介绍
本文主要介绍在 Qt 中设置程序图标的方法. 说明: 本文中的应用程序是面向 Windows 操作系统的: 本文中使用的 Qt Creator 版本号为:7.0.0: 本文中使用的 Qt 版本号为:5 ...
- Qt中添加背景图片的方法
Qt中添加背景图片的方法 QPalette的方法 #include #include int main(int argc, char *argv[]) { QApplication app(argc, ...
- Qt编写自定义控件及插件的使用
在使用Qt Designer设计窗体界面时,我们可以使用Widget Box里的窗体控件非常方便的绘制界面,比如拖进去一个按钮,一个文本编辑器等.虽然Qt Designer里的控件可以满足我们大部分的 ...
- 在Qt中如何编写插件,加载插件和卸载插件
Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoader来加载和卸载这些库.由于在开发项目的过程中,要开发一套插件 ...
- QT中生成字符串md5的方法
QT中,提供了QCryptographicHash类,很方便的实现的字符串到md5/md4/sha1的转换, 可以通过两种方法实现: [cpp] view plain copy QString pwd ...
- 【Y忍冬草】Qt中添加第三方插件VTK,Designer中有但Creator中没有
版本:Qt5.8+VTK7.0 晕菜,之前在用Qt进行第三方插件VTK的时,不管是在Qt Creator中打开还是在Qt Designer中打开,都可以找到这个小东西,结果中间Qt出过一次问题,重新卸 ...
最新文章
- shell介绍,命令历史,命令补全和别名 ,通配符, 输入输出重定向
- Solaris Mount
- 大型云原生项目在数字化企业落地过程解密
- winform C#的委托事件在winform窗体中传值,也可用于刷新另一窗体(窗体A刷新窗体B)...
- 数据列表DataList模板之实例
- volatile和final
- php求平均值的函数_国二常用函数(二)
- 常用并发工具类(并发集合类)
- Linux运维 第三阶段 (一) 网络配置及openssl加密
- 简单易懂的排序算法演示
- 移远百科 | LTE-A关键技术分析
- 苹果自带的清理软件_苹果清理软件哪个好,哪个更适合自己 - 単子
- 怎么用浏览器访问计算机文件共享,如何用ES文件浏览器完全共享电脑里的文件流程...
- bzoj 3739 DZY loves math VIII
- linux利用vsftpd 搭建FTP服务器
- jQuery-三班倒日历
- 博达网站服务器地址怎么查,路由器博达路由器配置经典教程
- 基于机器学习的敏感信息泄露治理探索
- 脑电情绪识别的相关技术综述
- 事件委托、事件冒泡与事件捕获
热门文章
- Java多线程--概述-转自Kyrie lrving
- 共轭相似以及共轭对角化
- C语言递归问题【青蛙跳台阶】和【汉诺塔】
- Unity3D本地文件夹的创建、删除(Directory文件夹删除和单个文件删除)
- 没有mysql不能设置root密码怎么办_无法给MySQL root用户修改密码的解决方法
- 飞冰 前端开发的一些坑
- 打印时出现“错误!未找到引用源”“未定义书签”怎么办?
- k8s的service端口暴露与代理
- win10系统找不到telnet服务器,win10系统找不到Telnet服务的解决教程
- 网络钓鱼仍然是安全行业的祸害