[发明专利]一种实现linux共享库中操作图形界面的方法及介质在审
申请号: | 202011365557.7 | 申请日: | 2020-11-28 |
公开(公告)号: | CN112486614A | 公开(公告)日: | 2021-03-12 |
发明(设计)人: | 胡焱;李凯强;牛鹏 | 申请(专利权)人: | 浪潮金融信息技术有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F8/38 |
代理公司: | 苏州思睿晶华知识产权代理事务所(普通合伙) 32403 | 代理人: | 阮俊敏 |
地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 linux 共享 操作 图形界面 方法 介质 | ||
本发明公开了一种实现linux共享库中操作图形界面的方法,包括以下步骤:客户端加载共享库,通过初始化接口打开服务端并将服务端初始化;服务端监听客户端连接请求,收到连接请求后,服务端建立与客户端的连接并开启指令监控线程;客户端将报文数据打包后发送至服务端,服务端指令监控线程接收并解析报文数据,在服务端界面上执行与报文数据相应的操作后,将执行结果打包发送至客户端;客户端调用断开连接接口关闭与服务端的连接,服务端停止指令监控线程。通过上述方式,本发明能够在主程序不使用Qt的情况下,在共享库中去动态、实时地处理图形界面任务。
技术领域
本发明涉及图形界面开发技术领域,特别是涉及一种实现linux共享库中操作图形界面的方法及介质。
背景技术
Qt作为一种成熟的跨平台c++图形用户界面开发框架已被广泛应用到linux下的应用程序开发中,在实际的编码过程中主程序首先需要调用特定方法完成Qt初始化工作。较为麻烦的是,若主程序不使用Qt开发,但依赖的软件开发工具包(SDK)所提供的的共享库(以.so为后缀)或者我们自己开发的共享库需要依赖Qt来完成图形界面的创建、绘制等功能,若不采用合适的方法去完成Qt资源初始化是无法满足开发和使用需求的。
借助Qt开发的图形界面应用程序,在其main函数中需要实例化QApplicati-on对象,并执行exec接口建立起主事件循环,而SDK提供的共享库中通常不会去实例化该对象,更不会去尝试建立起主事件循环,这样就导致在实际运行时,主程序在加载第三方共享库后,试图调用库中的接口来创建界面时,产生崩溃无法正常使用。
目前,SDK的提供者针对上述问题,通常采取的办法是在提供so库的同时,也会提供自己的应用程序,目的是为了将图形界面绘制和事件响应工作放在该应用程序中,基本上是一种“主应用程序(非Qt开发)-共享库(.so)-界面应用程序(Qt开发)”模式,这种模式本身是一种跨进程通信的方式,开发者本身需要关注两个进程的启动、运行、销毁以及问题定位,维护难度较大。
发明内容
本发明主要解决的技术问题是提供一种实现linux共享库中操作图形界面的方法及介质,能够在主程序不使用Qt的情况下,在共享库中去动态、实时地处理图形界面任务。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种实现linux共享库中操作图形界面的方法,包括以下步骤:
客户端加载共享库,通过初始化接口打开服务端并将服务端初始化;
服务端监听客户端连接请求,收到连接请求后,服务端建立与客户端的连接并开启指令监控线程;
客户端将报文数据打包后发送至服务端,服务端指令监控线程接收并解析报文数据,在服务端界面上执行与报文数据相应的操作后,将执行结果打包发送至客户端;
客户端调用断开连接接口关闭与服务端的连接,服务端停止指令监控线程。
进一步,服务端初始化包括以下步骤:在进程中完成QApplication以及主窗体对象的实例化工作,并建立主事件循环。
进一步,服务端完成初始化的同时设置连接端口,监听客户端的连接请求。
进一步,服务端建立与客户端的连接后服务端监控与客户端的连接状态以及报文传输状态,当连接状态或报文传输状态异常时,服务端退出。
一种实现linux共享库中操作图形界面的介质,用于储存实现linux共享库中操作图形界面的方法所用的计算机软件指令,其包含用于执行上述为实现linux共享库中操作图形界面的方法所设计的程序。
本发明的有益效果是:本发明结合Socket编程技术,使用Socket作为共享库和Qt程序连接的数据通道,方便管理两个进程的运行状态,有效避免异常情况导致的进程不退出和阻塞问题;Socket也支持跨PC使用,可支持远程调用;能够实现跨进程通信,满足非Qt应用程序对于界面的需求。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮金融信息技术有限公司,未经浪潮金融信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011365557.7/2.html,转载请声明来源钻瓜专利网。