CN108196848B - 界面嵌入显示方法、装置、用户终端及可读存储介质 - Google Patents
界面嵌入显示方法、装置、用户终端及可读存储介质 Download PDFInfo
- Publication number
- CN108196848B CN108196848B CN201810015917.7A CN201810015917A CN108196848B CN 108196848 B CN108196848 B CN 108196848B CN 201810015917 A CN201810015917 A CN 201810015917A CN 108196848 B CN108196848 B CN 108196848B
- Authority
- CN
- China
- Prior art keywords
- window
- target
- interface
- handle
- matched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明提供一种界面嵌入显示方法、装置、用户终端及可读存储介质,所述方法包括:获取目标应用程序的进程标识及目标窗口类名,并基于进程标识获取目标窗口类名匹配的窗口句柄;对窗口句柄进行类型转化,创建与窗口句柄匹配的窗口容器,并生成对应的窗口控件widget;基于所述widget创建与QML界面对应匹配的界面显示类;将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示。所述界面嵌入显示方法能够将目标应用程序的进程界面嵌入到QML界面中,并通过所述QML界面显示对应进程界面,以提高QML技术的应用场景范围。
Description
技术领域
本发明涉及程序界面显示技术领域,具体而言,涉及一种界面嵌入显示方法、装置、用户终端及可读存储介质。
背景技术
随着科学技术的不断发展,QT技术与QML技术在用户终端(例如,PC端、移动终端及其他嵌入式设备)上的应用愈发广泛,但就目前而言,业界主流通常采用QT技术将目标应用程序的进程界面嵌入到QT界面中的方式,基于QT界面对目标应用程序的进程界面进行显示。而相较于QT技术,现有QML技术的应用场景范围更窄,市面上尚未存在将目标应用程序的进程界面嵌入到QML界面中,以通过QML界面显示对应进程界面的界面显示方案。
发明内容
为了克服现有技术中的上述不足,本发明的目的在于提供一种界面嵌入显示方法、装置、用户终端及可读存储介质,所述界面嵌入显示方法能够将目标应用程序的进程界面嵌入到QML界面中,并通过所述QML界面显示对应进程界面,以提高QML技术的应用场景范围。
就方法而言,本发明较佳的实施例提供一种界面嵌入显示方法,应用于用户终端,所述方法包括:
获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄;
对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;
基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;
将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示。
在本发明较佳的实施例中,上述目标应用程序包括至少一个窗口,每个窗口对应一个窗口类名,每个窗口类名对应一个窗口句柄,所述基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄的步骤包括:
根据所述目标应用程序的进程标识获取所述目标应用程序包括的各窗口对应的窗口句柄;
将获取到的各窗口句柄分别与所述目标窗口类名进行匹配,并在匹配成功时将匹配成功的窗口句柄作为与目标窗口类名匹配的窗口句柄。
在本发明较佳的实施例中,上述对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget的步骤包括:
采用QWindow::fromWinId函数将获取到的与目标窗口类名匹配的所述窗口句柄转化为QWindow类型的目标窗口句柄;
采用QWidget::createWindowContainer函数为所述QWindow类型的目标窗口句柄创建与所述目标窗口句柄对应的目标窗口相匹配的窗口容器;
将所述目标窗口容置在所述窗口容器内,并对所述目标窗口进行配置,以生成对应的widget。
在本发明较佳的实施例中,上述对所述目标窗口进行配置的步骤包括:
分别对容置于所述窗口容器内的目标窗口在QML界面中的窗口模式、父窗口及窗口显示策略进行配置。
在本发明较佳的实施例中,上述将所述界面显示类注册到所述QML界面中的步骤包括:
采用qmlRegisterType函数将所述界面显示类加入到所述QML界面中,以将所述界面显示类注册到所述QML界面中。
就装置而言,本发明较佳的实施例提供一种界面嵌入显示装置,应用于用户终端,所述装置包括:
句柄获取模块,用于获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄;
控件生成模块,用于对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;
子类配置模块,用于基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;
注册显示模块,用于将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示。
在本发明较佳的实施例中,上述目标应用程序包括至少一个窗口,每个窗口对应一个窗口类名,每个窗口类名对应一个窗口句柄,所述句柄获取模块基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄的方式包括:
根据所述目标应用程序的进程标识获取所述目标应用程序包括的各窗口对应的窗口句柄;
将获取到的各窗口句柄分别与所述目标窗口类名进行匹配,并在匹配成功时将匹配成功的窗口句柄作为与目标窗口类名匹配的窗口句柄。
在本发明较佳的实施例中,上述控件生成模块对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget的方式包括:
采用QWindow::fromWinId函数将获取到的与目标窗口类名匹配的所述窗口句柄转化为QWindow类型的目标窗口句柄;
采用QWidget::createWindowContainer函数为所述QWindow类型的目标窗口句柄创建与所述目标窗口句柄对应的目标窗口相匹配的窗口容器;
将所述目标窗口容置在所述窗口容器内,并对所述目标窗口进行配置,以生成对应的widget。
就终端而言,本发明较佳的实施例提供一种用户终端,所述用户终端包括:
存储器;
处理器;以及
上述的界面嵌入显示装置,所述装置安装于所述存储器中并包括由所述处理器执行的软件功能模块,所述装置包括:
句柄获取模块,用于获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄;
控件生成模块,用于对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;
子类配置模块,用于基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;
注册显示模块,用于将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示。
就存储介质而言,本发明较佳的实施例提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在用户终端执行上述的界面嵌入显示方法。
相对于现有技术而言,本发明较佳的实施例提供的界面嵌入显示方法、装置、用户终端及可读存储介质具有以下有益效果:所述界面嵌入显示方法能够将目标应用程序的进程界面嵌入到QML界面中,并通过所述QML界面显示对应进程界面,以提高QML技术的应用场景范围。首先,所述方法通过获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取到所述目标应用程序的与目标窗口类名匹配的窗口句柄;接着,所述方法通过对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器的方式,基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;然后,所述方法基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;最后,所述方法通过将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示,从而将目标应用程序的进程界面嵌入到QML界面中,并通过所述QML界面对对应进程界面进行显示,以提高QML技术的应用场景范围。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明权利要求保护范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳的实施例提供的用户终端的一种方框示意图。
图2为本发明较佳的实施例提供的界面嵌入显示方法的一种流程示意图。
图3为图2中所示的步骤S210包括的子步骤的一种流程示意图。
图4为本发明较佳的实施例提供的界面嵌入显示装置的一种方框示意图。
图标:10-用户终端;11-存储器;12-处理器;13-通信单元;14-显示单元;100-界面嵌入显示装置;110-句柄获取模块;120-控件生成模块;130-子类配置模块;140-注册显示模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,是本发明较佳的实施例提供的用户终端10的一种方框示意图。在本发明实施例中,所述用户终端10上可以运行至少一个应用程序,并基于QML技术将所述至少一个应用程序中的目标应用程序的进程窗口界面嵌入到QML界面中进行显示,以提高QML技术的应用场景范围,其中所述应用程序可以是基于QT技术设计生成的应用程序,也可以是基于QML技术设计生成的应用程序,还可以是采用其他技术设计生成的应用程序。在本实施例中,所述用户终端10可以是,但不限于,智能手机、个人电脑(Personal Computer,PC)、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(MobileInternet Device,MID)等。
在本实施例中,所述用户终端10包括界面嵌入显示装置100、存储器11、处理器12、通信单元13及显示单元14。所述存储器11、处理器12、通信单元13及显示单元14各个元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述界面嵌入显示装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器11中的软件功能模块,所述处理器12通过运行存储在存储器11内的所述界面嵌入显示装置100对应的软件功能模块,从而执行各种功能应用以及数据处理。
在本实施例中,所述存储器11可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除可编程只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器11可以用于存储各种应用程序,所述处理器12在接收到执行指令后,执行所述应用程序。进一步地,上述存储器11内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
在本实施例中,所述处理器12可以是一种具有信号的处理能力的集成电路芯片。所述处理器12可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本实施例中,所述通信单元13用于通过网络建立所述用户终端10与其他外部设备之间的通信连接,并通过所述网络进行数据传输,其中所述数据传输包括应用程序的下载与转发分享。
在本实施例中,所述显示单元14用于对图像数据进行运算处理,并相应地对各图形界面进行显示。其中所述显示单元14可以包括GPU(Graphics Processing Unit,图形处理器)及显示器,所述GPU用于将用户终端10所需显示的应用程序进程窗口界面对应的图形数据信息进行转换驱动,并控制所述显示器进行显示。
在本实施例中,所述用户终端10通过存储在所述存储器11中的界面嵌入显示装置100将目标应用程序的目标窗口界面嵌入到QML界面中,并基于所述QML界面对该目标窗口界面进行显示,从而提高QML技术的应用场景范围。
可以理解的是,图1所示的结构仅为用户终端10的一种结构示意图,所述用户终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,是本发明较佳的实施例提供的界面嵌入显示方法的一种流程示意图。在本发明实施例中,所述界面嵌入显示方法应用于上述的用户终端10,所述用户终端10上运行有至少一个应用程序。下面对图2所示的界面嵌入显示方法的具体流程和步骤进行详细阐述。
在本发明实施例中,所述界面嵌入显示方法包括以下步骤:
步骤S210,获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄。
在本实施例中,每个应用程序在所述用户终端10中各自对应一个单独的进程标识,所述用户终端10可通过各应用程序对应的进程标识区分对应应用程序与其他应用程序。而每个应用程序包括至少一个用于显示程序内容的窗口,每个窗口对应一个窗口类名,每个窗口类名对应一个窗口句柄,其中由相同技术设计生成的应用程序各自包括的窗口类名是相同的,现有技术中若多个由相同技术设计生成的应用程序在所述用户终端10上同时运行时,用户终端10仅通过应用程序的窗口类名无法准确获取到想要的窗口句柄。因此所述用户终端10通过获取目标应用程序的进程标识,及所述目标应用程序中要进行显示的目标窗口的目标窗口类名的方式,基于所述进程标识及所述目标窗口类名精准地获取到所述目标应用程序的与目标窗口类名匹配的窗口句柄,其中所述目标应用程序为用户通过所述用户终端10选取的需要进行显示的应用程序,所述目标窗口类名为所述目标应用程序中需要进行显示时的目标窗口的类名。
请参照图3,是图2中所示的步骤S210包括的子步骤的一种流程示意图。在本实施例中,所述步骤S210中基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄的步骤包括子步骤S211及子步骤S212:
子步骤S211,根据所述目标应用程序的进程标识获取所述目标应用程序包括的各窗口对应的窗口句柄。
在本实施例中,所述用户终端10可根据获取到的进程标识在所述用户终端10上运行的众多应用程序中查找到对应的目标应用程序,并相应地获取到所述目标应用程序包括的各窗口对应的窗口句柄。
子步骤S212,将获取到的各窗口句柄分别与所述目标窗口类名进行匹配,并在匹配成功时将匹配成功的窗口句柄作为与目标窗口类名匹配的窗口句柄。
在本实施例中,所述用户终端10在获取到目标应用程序中各窗口的窗口句柄后,将通过将各窗口句柄与目标窗口类名进行匹配的方式,对应查找到与所述目标窗口类名匹配的窗口句柄。其中与所述目标窗口类名匹配的窗口句柄即为匹配过程中匹配成功的窗口句柄。
步骤S220,对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget。
在本实施例中,所述用户终端10在获取到与目标应用程序中的目标窗口类名对应匹配的窗口句柄后,将对获取到的所述窗口句柄进行类型转化,得到转化为QWindow类型的与目标窗口句柄,并基于所述目标窗口句柄创建出相应的窗口容器,从而对应生成与所述目标窗口匹配的窗口控件widget。
可选地,所述对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget的步骤可以包括:
采用QWindow::fromWinId函数将获取到的与目标窗口类名匹配的所述窗口句柄转化为QWindow类型的目标窗口句柄;
采用QWidget::createWindowContainer函数为所述QWindow类型的目标窗口句柄创建与所述目标窗口句柄对应的目标窗口相匹配的窗口容器;
将所述目标窗口容置在所述窗口容器内,并对所述目标窗口进行配置,以生成对应的widget。
其中所述对目标窗口进行配置的步骤包括:
分别对容置于所述窗口容器内的目标窗口在QML界面中的窗口模式、父窗口及窗口显示策略进行配置。
在本实施例中,所述用户终端10在对容置于所述窗口容器内的目标窗口进行配置时,会将所述目标窗口在QML界面中的窗口模式配置为无标题栏模式,对该目标窗口在QML界面中进行显示时的所需的父窗口进行配置或指定,对该目标窗口在QML界面中进行显示时的坐标变换情况进行监控的显示策略进行配置,以使该目标窗口按照用户在所述用户终端10的操作跟随用户终端10的系统坐标进行移动显示和/或缩放显示。
步骤S230,基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类。
在本实施例中,所述用户终端10在得到与目标窗口对应的widget后,将根据所述widget创建该widget对应目标窗口在嵌入到QML界面中时的QQuickItem的子类,其中所述QQuickItem的子类中包括该widget的已转化为QWindow类型的目标窗口句柄,及对应的窗口容器。所述用户终端10通过调用show方法对所述QQuickItem的子类中的widget进行配置,使所述QQuickItem的子类变成一个带有显示界面的与所述目标窗口匹配的界面显示类。
步骤S240,将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示。
在本实施例中,所述用户终端10通过采用qmlRegisterType函数将所述界面显示类加入到所述QML界面中的方式,使得所述用户终端10能够基于所述qmlRegisterType函数在所述QML界面中调用所述界面显示类,从而实现所述将所述界面显示类注册到所述QML界面中的步骤。
在本实施例中,所述用户终端10基于界面显示类包含的目标窗口在所述QML界面中的父窗口信息,在所述QML界面中对应位置处对所述界面显示类对应的目标窗口进行显示。其中所述界面显示类将以控件的形式被添加到所述QML界面中,且该界面显示类在被添加时将被嵌套一个用于控制显示状况的控制容器。
请参照图4,是本发明较佳的实施例提供的界面嵌入显示装置100的一种方框示意图。在本发明实施例中,所述界面嵌入显示装置100包括句柄获取模块110、控件生成模块120、子类配置模块130及注册显示模块140。
所述句柄获取模块110,用于获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄。
在本实施例中,所述目标应用程序包括至少一个窗口,每个窗口对应一个窗口类名,每个窗口类名对应一个窗口句柄,所述句柄获取模块110基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄的方式包括:
根据所述目标应用程序的进程标识获取所述目标应用程序包括的各窗口对应的窗口句柄;
将获取到的各窗口句柄分别与所述目标窗口类名进行匹配,并在匹配成功时将匹配成功的窗口句柄作为与目标窗口类名匹配的窗口句柄。
其中,所述句柄获取模块110可以执行图2中所示的步骤S210,及图3中所示的子步骤S211和子步骤S212,具体的执行过程可参照上文中对所述步骤S210、所述子步骤S211及所述子步骤S212的详细描述。
所述控件生成模块120,用于对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget。
在本实施例中,所述控件生成模块120对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget的方式包括:
采用QWindow::fromWinId函数将获取到的与目标窗口类名匹配的所述窗口句柄转化为QWindow类型的目标窗口句柄;
采用QWidget::createWindowContainer函数为所述QWindow类型的目标窗口句柄创建与所述目标窗口句柄对应的目标窗口相匹配的窗口容器;
将所述目标窗口容置在所述窗口容器内,并对所述目标窗口进行配置,以生成对应的widget。
其中所述控件生成模块120对所述目标窗口进行配置的方式包括:
分别对容置于所述窗口容器内的目标窗口在QML界面中的窗口模式、父窗口及窗口显示策略进行配置。
在本实施例中,所述控件生成模块120可以执行图2中所示的步骤S220,具体的执行过程可参照上文中对所述步骤S220的详细描述。
所述子类配置模块130,用于基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类。
在本实施例中,所述子类配置模块130可以执行图2中所示的步骤S230,具体的执行过程可参照上文中对所述步骤S230的详细描述。
所述注册显示模块140,用于将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示。
在本实施例中,所述子类配置模块130可以执行图2中所示的步骤S240,具体的执行过程可参照上文中对所述步骤S240的详细描述。
在本发明实施例中,本发明较佳的实施例还提供一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序运行时控制所述可读存储介质所在用户终端10执行上述的界面嵌入显示方法。其中,所述可读存储介质可以是电子设备(比如,PC端)能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
综上所述,在本发明较佳的实施例提供的界面嵌入显示方法、装置、用户终端及可读存储介质中,所述界面嵌入显示方法能够将目标应用程序的进程界面嵌入到QML界面中,并通过所述QML界面显示对应进程界面,以提高QML技术的应用场景范围。首先,所述方法通过获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取到所述目标应用程序的与目标窗口类名匹配的窗口句柄;接着,所述方法通过对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器的方式,基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;然后,所述方法基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;最后,所述方法通过将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示,从而将目标应用程序的进程界面嵌入到QML界面中,并通过所述QML界面对对应进程界面进行显示,以提高QML技术的应用场景范围。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种界面嵌入显示方法,其特征在于,应用于用户终端,所述方法包括:
获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄;
对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;
基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;
将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示;
其中,所述对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget的步骤包括:
采用QWindow::fromWinId函数将获取到的与目标窗口类名匹配的所述窗口句柄转化为QWindow类型的目标窗口句柄;
采用QWidget::createWindowContainer函数为所述QWindow类型的目标窗口句柄创建与所述目标窗口句柄对应的目标窗口相匹配的窗口容器;
将所述目标窗口容置在所述窗口容器内,并对所述目标窗口进行配置,以生成对应的widget,其中所述对所述目标窗口进行配置的步骤包括:分别对容置于所述窗口容器内的目标窗口在QML界面中的窗口模式、父窗口及窗口显示策略进行配置。
2.根据权利要求1所述的方法,其特征在于,所述目标应用程序包括至少一个窗口,每个窗口对应一个窗口类名,每个窗口类名对应一个窗口句柄,所述基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄的步骤包括:
根据所述目标应用程序的进程标识获取所述目标应用程序包括的各窗口对应的窗口句柄;
将获取到的各窗口句柄分别与所述目标窗口类名进行匹配,并在匹配成功时将匹配成功的窗口句柄作为与目标窗口类名匹配的窗口句柄。
3.根据权利要求1所述的方法,其特征在于,所述将所述界面显示类注册到所述QML界面中的步骤包括:
采用qmlRegisterType函数将所述界面显示类加入到所述QML界面中,以将所述界面显示类注册到所述QML界面中。
4.一种界面嵌入显示装置,其特征在于,应用于用户终端,所述装置包括:
句柄获取模块,用于获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄;
控件生成模块,用于对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;
子类配置模块,用于基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;
注册显示模块,用于将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示;
其中,所述控件生成模块对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget的方式包括:
采用QWindow::fromWinId函数将获取到的与目标窗口类名匹配的所述窗口句柄转化为QWindow类型的目标窗口句柄;
采用QWidget::createWindowContainer函数为所述QWindow类型的目标窗口句柄创建与所述目标窗口句柄对应的目标窗口相匹配的窗口容器;
将所述目标窗口容置在所述窗口容器内,并对所述目标窗口进行配置,以生成对应的widget,其中所述对所述目标窗口进行配置的方式包括:分别对容置于所述窗口容器内的目标窗口在QML界面中的窗口模式、父窗口及窗口显示策略进行配置。
5.根据权利要求4所述的装置,其特征在于,所述目标应用程序包括至少一个窗口,每个窗口对应一个窗口类名,每个窗口类名对应一个窗口句柄,所述句柄获取模块基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄的方式包括:
根据所述目标应用程序的进程标识获取所述目标应用程序包括的各窗口对应的窗口句柄;
将获取到的各窗口句柄分别与所述目标窗口类名进行匹配,并在匹配成功时将匹配成功的窗口句柄作为与目标窗口类名匹配的窗口句柄。
6.一种用户终端,其特征在于,所述用户终端包括:
存储器;
处理器;以及
权利要求4或5所述的界面嵌入显示装置,所述装置安装于所述存储器中,所述装置所包括的软件功能模块由所述处理器执行,所述装置包括:
句柄获取模块,用于获取目标应用程序的进程标识及目标窗口类名,并基于所述进程标识获取所述目标应用程序的与目标窗口类名匹配的窗口句柄;
控件生成模块,用于对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget;
子类配置模块,用于基于所述widget创建与QML界面对应匹配的QQuickItem的子类,并对所述子类进行配置,得到与所述目标应用程序的目标窗口匹配的界面显示类;
注册显示模块,用于将所述界面显示类注册到所述QML界面中,并基于所述QML界面对所述界面显示类对应的目标窗口进行显示;
其中,所述控件生成模块对获取到的所述窗口句柄进行类型转化,创建与转化后的所述窗口句柄匹配的窗口容器,并基于所述窗口容器及所述窗口句柄对应的目标窗口生成对应的窗口控件widget的方式包括:
采用QWindow::fromWinId函数将获取到的与目标窗口类名匹配的所述窗口句柄转化为QWindow类型的目标窗口句柄;
采用QWidget::createWindowContainer函数为所述QWindow类型的目标窗口句柄创建与所述目标窗口句柄对应的目标窗口相匹配的窗口容器;
将所述目标窗口容置在所述窗口容器内,并对所述目标窗口进行配置,以生成对应的widget,其中所述对所述目标窗口进行配置的方式包括:分别对容置于所述窗口容器内的目标窗口在QML界面中的窗口模式、父窗口及窗口显示策略进行配置。
7.一种可读存储介质,其特征在于,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在用户终端执行权利要求1-3中任意一项所述的界面嵌入显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015917.7A CN108196848B (zh) | 2018-01-08 | 2018-01-08 | 界面嵌入显示方法、装置、用户终端及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810015917.7A CN108196848B (zh) | 2018-01-08 | 2018-01-08 | 界面嵌入显示方法、装置、用户终端及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108196848A CN108196848A (zh) | 2018-06-22 |
CN108196848B true CN108196848B (zh) | 2021-04-27 |
Family
ID=62588631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810015917.7A Active CN108196848B (zh) | 2018-01-08 | 2018-01-08 | 界面嵌入显示方法、装置、用户终端及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108196848B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309408A (zh) * | 2020-02-24 | 2020-06-19 | 深圳震有科技股份有限公司 | 一种程序嵌入方法、系统及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100879983B1 (ko) * | 2006-09-01 | 2009-01-23 | 삼성전자주식회사 | Htc를 이용한 독립 컴포넌트 제공 시스템 및 독립컴포넌트를 이용한 이벤트 처리 방법 |
CN104199628A (zh) * | 2014-08-07 | 2014-12-10 | 北京配天技术有限公司 | 基于QT Embedded系统的字符显示方法和系统 |
CN105630501A (zh) * | 2015-12-25 | 2016-06-01 | 深圳市航盛电子股份有限公司 | 一种基于QML+OpenGL的车载图形界面系统 |
CN105739984A (zh) * | 2016-01-29 | 2016-07-06 | 中国人民解放军63811部队 | 一种基于Qt的高可维护性数据显示框架 |
-
2018
- 2018-01-08 CN CN201810015917.7A patent/CN108196848B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100879983B1 (ko) * | 2006-09-01 | 2009-01-23 | 삼성전자주식회사 | Htc를 이용한 독립 컴포넌트 제공 시스템 및 독립컴포넌트를 이용한 이벤트 처리 방법 |
CN104199628A (zh) * | 2014-08-07 | 2014-12-10 | 北京配天技术有限公司 | 基于QT Embedded系统的字符显示方法和系统 |
CN105630501A (zh) * | 2015-12-25 | 2016-06-01 | 深圳市航盛电子股份有限公司 | 一种基于QML+OpenGL的车载图形界面系统 |
CN105739984A (zh) * | 2016-01-29 | 2016-07-06 | 中国人民解放军63811部队 | 一种基于Qt的高可维护性数据显示框架 |
Non-Patent Citations (1)
Title |
---|
Qt5。在QML中嵌⼊QWidget对象;NickD2039;《VOIDCC http://cn.voidcc.com/question/p-wwwwuwis-bbo.html》;20170725;第1-7页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108196848A (zh) | 2018-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
CN109145238B (zh) | 一种卡片显示方法、装置及移动设备 | |
US8495617B2 (en) | Interworking system between user terminal and smart card for executing widget, and method thereof | |
CN107656729B (zh) | 列表视图的更新装置、方法及计算机可读存储介质 | |
CN110069308B (zh) | 页面启动方法、装置、电子设备和存储介质 | |
US11016769B1 (en) | Method and apparatus for processing information | |
WO2017107851A1 (zh) | 一种桌面应用组件发布、更新方法及装置 | |
CN110008431B (zh) | 页面组件构建方法、装置、页面生成设备及可读存储介质 | |
CN108196848B (zh) | 界面嵌入显示方法、装置、用户终端及可读存储介质 | |
CN111258582B (zh) | 一种窗口渲染方法、装置、计算机设备及存储介质 | |
CN111124523A (zh) | 用于初始化应用的方法和装置 | |
CN112073505B (zh) | 在云服务器上进行卸载的方法、控制装置、存储介质 | |
CN111290812B (zh) | 应用控件的显示方法、装置、终端及存储介质 | |
CN108011964A (zh) | 图片上传方法、装置、电子终端及可读存储介质 | |
CN114124475A (zh) | 一种网络资产端口扫描及服务识别方法、装置 | |
CN112596729A (zh) | 目标应用界面生成方法及装置、可读介质和电子设备 | |
CN113778566A (zh) | 原生应用调用方法、装置、电子设备和计算机可读介质 | |
CN112905931A (zh) | 页面信息的展示方法、装置、电子设备及存储介质 | |
CN111737372A (zh) | 地图数据生成方法和装置 | |
CN113268300B (zh) | 信息显示方法及装置 | |
CN116661951B (zh) | 镜像文件处理方法、装置、电子设备及存储介质 | |
CN114253646B (zh) | 数字沙盘展示和生成方法、设备及存储介质 | |
CN113342413B (zh) | 用于处理组件的方法、装置、设备、介质和产品 | |
CN115145569A (zh) | 一种生成页面骨架屏的方法和装置 | |
CN112860149A (zh) | 一种用户界面配置方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |