test QPluginLoader

Qt 5.14.2 aarch64静态交叉编译实战指南 静态链接是嵌入式Linux环境下保障Qt应用独立运行的核心技术,其本质是将Qt库、业务代码及依赖模块(如serialport、charts)全部编译进单一可执行文件,彻底规避动态库版本冲突与运行时环境缺失问题。该方案依托Qt 5.14.2对--static与--no-feature-shared的原生支持,并严格适配aarch64架构的ABI一致性要求——包括GCC工具链选型(如Linaro 7.5.0)、纯净sysroot构建及OpenGL禁用等关键控制点。技术价值在于交付零依赖、高确定性的工业HMI,适 阅读详情

test_QPluginLoader.h

#pragma once
#include "test_macro.h"
#include <QWidget>

#define QtPluginDemo_iid "org.qt-project.Qt.PluginDemo"    // 定义接口的IID

class TESTMODEL_API IUIPLUGINBASE
{
public:
	//初始化 失败返回-1
	//    virtual int init() = 0;
	//input:显示的起始位置x , y 轴坐标
	virtual int show(int pos_x, int pos_y = 0) = 0;

};
Q_DECLARE_INTERFACE(IUIPLUGINBASE, QtPluginDemo_iid);


class MainDlg : public QWidget, public IUIPLUGINBASE
{
	Q_OBJECT
		Q_PLUGIN_METADATA(IID QtPluginDemo_iid)
		Q_INTERFACES(IUIPLUGINBASE)
public:
	explicit MainDlg(QWidget *parent = 0);
	~MainDlg() {}
	//input:显示的起始位置x , y 轴坐标
	int show(int pos_x, int pos_y);
private slots:

private:

};

test_QPluginLoader.cpp

#include "stdafx.h"
#include "test_QPluginLoader.h"
#include <QPluginLoader>

MainDlg::MainDlg(QWidget *parent) :
	QWidget(parent)
{
	this->setWindowTitle("test_QPluginLoader");
}

int MainDlg::show(int pos_x, int pos_y)
{
	move(pos_x, pos_y);
	QWidget::show();
	return 1;
}

void main()
{
	string path = fmt::format("{0}/{1}.dll", app::app_dir_path, "TestModule");

	QPluginLoader loader(path.c_str());
	IUIPLUGINBASE * P_plug;
	QObject*  loaderplugin = loader.instance();
	if (!loader.isLoaded())
		qDebug() << loader.errorString();
	if (loaderplugin) {
		P_plug = qobject_cast<IUIPLUGINBASE * >(loaderplugin);

		P_plug->show(100, 100);
	}
}
Qt高级开发实战:从Demo到工业级桌面应用的工程化架构指南 在桌面应用开发领域,跨平台框架与高性能UI渲染是构建复杂软件系统的关键技术基础。Qt作为成熟的C++应用框架,其核心价值在于提供了一套完整的解决方案,通过信号槽机制实现松耦合通信,结合Model/View架构高效管理大规模数据,并利用QSS样式表与QML语言实现灵活界面定制。这些技术原理共同支撑起现代桌面应用对稳定性、可维护性和跨平台兼容性的工程要求,尤其在工业控制、数据可视化等需要处理多线程同步与复杂绘图的场景中至关重要。本文聚焦于Qt高级开发中的工程化实践,通过一个传感器数据监控平台案例,系统讲解如何从 阅读详情

相关推荐

Qt Charts实战:手把手教你打造一个可交互的折线图配置工具(附完整源码)

本文详细介绍了如何使用Qt Charts模块从零构建一个功能完备的可交互折线图配置工具。通过实战代码演示,涵盖UI设计、动态数据绑定、样式自定义、多序列管理等核心功能,并提供了性能优化、工程化实践等进阶技巧,帮助开发者快速掌握Qt Charts在数据可视化中的应用。

weixin_30562507的博客 356

插件框架PluginLoader

2014年9月,公司项目过于臃肿,而且遇到65536方法数超限问题。计划准备拆分模块,并通过插件方式进行在线更新。 当时我花了一个月时间,开发这个插件框架,并把搜索、聊天室、游戏等模块打成插件形成,期间项目经历了大大小小十几个版本迭代,插件框架也一直稳定运行到现在。该插件主要原理是动态代理。 插件主要开发时间是在2014年9月到10月,后续只是修复一些bug,主要精力集中在了业务开发上了。

逍遥大虾的博客 770

C++/Qt高薪项目实战:工业级应用开发核心技术解析

C++作为高性能系统编程语言,凭借其零成本抽象和底层硬件控制能力,在需要极致性能的领域占据核心地位。其内存管理、模板元编程等特性使开发者能够构建高效、稳定的复杂系统。Qt框架则提供了强大的跨平台GUI开发能力,通过信号槽机制、模型/视图架构等设计,极大地提升了桌面和嵌入式应用的开发效率。两者的结合在工业自动化、汽车电子、医疗器械等高壁垒行业展现出巨大技术价值,能够满足复杂业务逻辑、高性能计算和严苛稳定性要求。本文以工业监控系统为例,深入剖析如何运用现代C++特性与Qt框架精髓,解决多线程数据同步、实时可视化

weixin_34189116的博客 360

QPluginLoader加载插件时报undefined symbol: XXXstaticMetaObjectE错误解决办法

QPluginLoader加载插件时报undefined symbol: XXXstaticMetaObjectE错误解决办法

sword__wj的博客 759

QT插件开发

Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoader来加载和卸载这些库。 分为三个部分来实现插件的调用: 插件的公共接口 实现插件 调用插件 插件接口 在编写插件和调用插件时都会用到该接口。 #ifndef PLUGININTERFACE_H #define PLUGININTERFACE_H #include <QtPlugin> #define PLUGININTERFACE_..

AI.PLAY 696

一生一芯——用RTL实现最简单的处理器NPC(南大数逻计组RV32ICPU) 代码及思考参考

本文介绍自己前期用Verilog编写的基于RV32I指令集的CPU,个人认为是最简单最易懂的版本(即没做什么优化,即代码很水,没有考虑一些奇怪的情况,只适用简单指令序列,即题目所示最简单的处理器),适合新手练手Verilog以及了解简单CPU的运行过程。本文基于一生一芯,利用Verilator进行仿真,并用gtkwave查看波形,不了解verilator和gtkwave的可以看前几篇文章。

long0_o的博客 3308

QPluginLoader 加载插件dll失败

1.加载 方法参考一下:Qt 使用QPluginLoader 加载外部dll的方法笔记_振星的博客-优快云博客_qpluginloader 2.遇到的问题是:界面dll文件 在Debug平台编译下运行时,主界面可以调用dll,但是使用windeployqt xxx.exe后,加载dll失败,找不到指定模块。 error如下: 2022-05-30 15:55:42:280 cjelibd.dll调用失败Cannot load library E:\codeZhaopeng\Jamming120.

老赵的博客 3665

数据结构与算法 —— 最短路径Dijkstra算法(迪杰斯特拉)详细图解以及python实现

前两章我们讲到了关于图的基本知识,和广度/深度优先搜索。本章,我们将介绍加权图和最短路径的相关知识。最短路径和最小生成树是图论中常见的问题。最短路径是指在一个图中找到两个节点之间的最短路径,最小生成树是指在一个图中找到一个连通子图,使得所有节点都能够互相到达,且总权值最小。最短路径算法常见的有floyd算法(弗洛伊德算法)和 dijkstra算法(迪杰斯特拉)。本文只介绍dijkstra算法。最短路径运用非常广泛,比如在导航系统中,确定两个地点间哪条路线最短;

‘’ 2万+

QPluginLoader 加载动态库失败

错误信息: QPublic::LoadDBPlugin: "The plugin '/int/bin/dbplugin/libAccDatabase.so' uses incompatible Qt library. Expected build key "arm linux g++-4 no-pkg-config", got "arm linux manually-g++ no-pkg-config"" 处理方法: 需要检查源码中对QT_BUILD_KEY的定义,修改qt-everywhere-op

luck_li的专栏 1875

VGG16

VGG16学习笔记

一去不复返的通信er 1177

PD详解—第一章—Type-C连接

Type-C连接 今天大师匈下班比较早,再给大家侃一侃PD,希望大家支持。 PD和Type-c的关系 首先讲一下PD快充的实现步骤,本文主要是Source端(电源),Sink端的差不多也一样,只是策略不同而已。 TypeC连接-->广播电源能力Source capbility(数据交互)->打电压电流->等待其他指令。 所以typec连接是第一步,很多人会从字面意思理解typec连接,这不就是把线给插上去就好了吗? 不知道有没有优秀的同学想到正确答案; 正确答案:typec连接的本质是为

大师匈的博客 1万+

Qt: Qt中动态链接库的使用

转自: http://www.qtcn.org/bbs/read.php?tid=14719 现在有些软件有自动升级功能,有些就是下载新的DLL文件,替换原来的动态链接库.MFC好象也有类似机制Qt还有一种方式,就是把一个QWidget子类,编译成动态链接库.然后根据动态链接库创建一个对象,返回QWidget子针,如果你的类不是QWidget的子类,就不能用这种方法了QLibrary也是用

JINKAI 1829

标准论文参考文献添加方法——Zotero入门使用教程

第一篇论文投出去了,写一下最后一步的参考文献修饰润色吧! 论文的参考文献,即References,是论文的最后一步,相信不管是写毕设论文还是期刊论文都遇到过需要修改参考文献的情况,非常之麻烦。而且参考文献中经常会与生僻奇怪气体出现,一个一个修改非常浪费时间,这里介绍一下一个非常好用的软件Zetero。 第一步:软件的下载安装及绑定Word 尽量使用客户端吧,

MISAYAONE的博客 20万+

Qt封装动态库

qt实现sdk Qt封装动态库 Qt动态库使用

风起时~微凉的博客 2187

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1856

在 SAP BTP 上为应用开启多租户能力:基于 SaaS Provisioning 和 XSUAA 的完整实践指南

本文介绍了在SAP BTP上配置多租户应用的实战指南。主要内容包括: 多租户架构概述:解释provider子账户、consumer子账户和tenant的概念,以及数据隔离机制。 安全配置:在xs-security.json中设置tenant-mode为shared,并为SaaS Provisioning服务添加回调scope授权。 路由配置:通过manifest.yml设置TENANT_HOST_PATTERN来定义多租户访问模式,确保不同租户通过不同子域名访问同一应用。 服务绑定:将XSUAA和SaaS

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 144

Qt插件开发

前言 插件是一种遵循一定规范的应用程序接口编写出来的程序,本教程说的插件是用于扩展Qt应用程序的插件,笔者做对创建和使用方法,做下简单的记录 一、Qt插件创建和使用流程 1.定义一个接口集(只有纯虚函数的类),用来与插件交流。 2.用宏Q_DECLARE_INTERFACE()将该接口告诉Qt元对象系统。 3.应用程序中用QPluginLoader来加载插件。 4.用宏qobject_cast()来判断一个插件是否实现了接口。 二、定义接口文件 在QtCreator中,新建头文件 .

aggs1990的专栏 6009

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

QT 程序自定义插件

1,定义接口文件 1 /****************************************************************************************************** 2 * Copyright (C) 2014, All right reserved. 3 4 * file Basic_Module_...

weixin_30394333的博客 116

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

利用Qt插件实现HellowWord

这一部分内容参见俺就挑最常见的说了选择 Library C++库选择Qt Plugin(共享库和静态链接库这一部分和Qt技术关系不大,本博客就不提了)新建完了其目录结构如下添加一个头文件#ifndefTEST_H #defineTEST_H #include<iostream> #include<QString> classTest{ p...

weixin_34064653的博客 251

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Qt5学习笔记之子程序与插件

Qt5学习笔记之子程序与插件 好的经验要乐于分享 文章目录Qt5学习笔记之子程序与插件前言一、创建一个子项目1.新建其他项目-子目录项目-Choose2.我这里起名叫TestProject3.选一个好用版本4.生成项目5.这里会自动弹出一个窗口,让你新建一个子项目,这里我新建一个标准的MainWindow,直接跳到最后二、配置插件头文件1.在主子程序中新建一个头文件2.命名为MainGetPlugin.h3.内容为三、新建插件Library工程1.基于TestProject项目新建PluginTest的l

u011826081的博客 330

Qt5.14.2 aarch64静态交叉编译全链路实践指南

静态交叉编译是嵌入式Linux开发中实现零依赖部署的核心技术,其本质是将目标平台的可执行代码与全部依赖(libc、zlib、OpenSSL等)在宿主机上一次性链接为独立二进制。该过程需严格匹配工具链ABI、规避动态符号解析冲突,并解决Qt等大型框架对第三方库(如icu、freetype)的隐式依赖问题。技术价值在于生成免安装、抗版本污染、适配精简rootfs的单文件应用,广泛应用于工业网关、ARM64 HMI、无shell嵌入式环境等对可移植性与确定性要求极高的场景。本文聚焦Qt5.14.2在aarch64

weixin_30843605的博客 276

FastSAM 自定义数据集教程:从标注到推理的完整实操

FastSAM 是一个基于 YOLOv8-seg 的轻量分割模型,单张图推理只要几十毫秒,不需要 SAM 那样沉重的提示管线。它自带的是通用模型,要分割你自己的目标,就得准备一份 FastSAM 自定义数据集:标数据、写配置、训模型、跑推理。读完全文,你能独立完成这整条链路。 前置准备:`git clone https://gitcode.com/gh_mirrors/fa/FastSAM`,然

gitblog_00474的博客 630

C++与Qt实战:基于RFC协议构建跨平台网络客户端

网络协议是计算机通信的基石,它定义了数据交换的格式与规则,确保不同设备间能可靠对话。理解协议原理,是掌握网络编程的关键。在工程实践中,将协议解析能力与客户端开发结合,能构建出功能强大的跨平台应用。Qt框架以其出色的跨平台GUI能力和丰富的网络模块,成为实现此类需求的理想选择。通过将RFC协议规范转化为具体的C++解析模块,并利用Qt进行界面集成与跨平台部署,开发者可以高效打造从底层通信到上层交互的完整解决方案。本文聚焦于**RFC协议解析**与**Qt跨平台客户端**的深度结合,为C++开发者提供一个从理论

weixin_30471561的博客 413

QT跨平台开发框架安装与配置全指南

QT作为跨平台C++ GUI开发框架,通过其强大的信号槽机制和元对象系统实现高效界面开发。其核心价值在于一次编写多平台部署的能力,大幅降低Windows、Linux和macOS多平台适配成本。开发者在工业控制、嵌入式系统和金融交易等领域广泛应用QT框架时,首先需要完成正确的环境安装与配置。本文以QT 5.15.2为例,详细解析Windows平台MSVC编译环境配置、Linux下gcc工具链集成以及macOS的Xcode环境准备等关键技术要点,特别针对国内开发者提供了清华镜像源加速方案。通过正确配置QTDIR

weixin_34234721的博客 435

大型CAx(CAD/CAE/CAPP/CAM)工业软件开发中的关键组件

通过对FreeCAD、SALOME等多款代码的分析研究,发现这些软件在架构设计、模块实现等方面,存在许多相似(同)的技术思想。因此,有必要对这些共性、主流的技术予以总结分析。

国产CAx(CAD/CAE/CAM)软件研发 1万+
上一篇: test QMetaType
下一篇: .clang-format
不如学也
博客等级 码龄12年 22粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值