首页> 中国专利> 基于QT embedded的同步显示方法、系统及数控机床

基于QT embedded的同步显示方法、系统及数控机床

摘要

本发明公开了一种基于QT embedded的同步显示方法、系统及数控机床,其中该方法包括:触发显示第一显示内容的目的QT绘图事件;执行所述QT绘图事件对应的绘图函数,并同时触发预定义的第一触发事件;其中,所述第一触发事件用于触发显示第二显示内容的帧缓存frame buffer操作,所述第二显示内容与所述第一显示内容为需要同步显示的内容;通过显示装置同步显示所述第一显示内容和所述第二显示内容。本发明保证在执行目的QT绘图事件之后执行frame buffer操作,确保frame buffer操作和QT embedded绘图显示同步,避免显示错误,改善用户体验。

著录项

  • 公开/公告号CN104331262A

    专利类型发明专利

  • 公开/公告日2015-02-04

    原文格式PDF

  • 申请/专利权人 北京配天技术有限公司;

    申请/专利号CN201410528481.3

  • 发明设计人 周国麟;

    申请日2014-10-09

  • 分类号

  • 代理机构深圳市威世博知识产权代理事务所(普通合伙);

  • 代理人何青瓦

  • 地址 100085 北京市海淀区信息路7号18号楼数字传媒大厦二层201室

  • 入库时间 2023-12-17 03:22:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-29

    授权

    授权

  • 2017-06-16

    实质审查的生效 IPC(主分类):G06F3/14 申请日:20141009

    实质审查的生效

  • 2015-02-04

    公开

    公开

说明书

技术领域

本发明涉及显示技术领域,具体是涉及一种基于QT embedded的同步显示方法,还涉及一种基于QT embedded的同步显示系统,以及涉及一种数控机床。 

背景技术

现有技术中,Qt Embedded系统是图形化界面开发工具QT的嵌入式版本系统,即嵌入式图形化界面开发工具系统,其与Linux I/O接口以及frame buffer(帧缓冲,标准显示设备驱动接口,即一种显示驱动设备)直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式。在具体的应用中,QT Embedded系统用于嵌入式硬件架构的常用软件环境,其具有跨平台的优势,相同的代码可以适用于windows、linux等不同操作系统下。 

然而,虽然在QT Embedded环境下使用frame buffer操作可以绕开QT本身的绘图操作系统,但是,Frame buffer的操作会和QT本身的绘图显示不同步。 

具体而言,QT Embedded自身的绘图在显示上使用了双缓存方法,对于在代码里一系列的显示更新需求,QT会先将更新的动作在内部显示缓存中实现,即先描绘到这个看不见(非显示)的缓存里,再统一将内部显示缓存的内容更新到显示屏对应的外部显示缓存上,即描绘到屏幕上;而Frame buffer操作等于直接作用于显示屏对应的外部显示缓存,即直接描绘在屏幕上。 

不难理解的是,由于在进行frame buffer操作时往往不知道QT自身的绘图流程到达哪个步骤,导致常常会出现frame buffer更新的显示内容先于/落后QT更新的显示内容,即出现更新显示内容不同步的现象, 造成闪屏、显示区域不同步等,用户体验差甚至产生显示错误而引起不必要的麻烦。 

发明内容

本发明主要解决现有技术Frame buffer操作和QT绘图显示不同步的技术问题,提供一种基于QT embedded的同步显示方法、系统及数控机床,能够保证Frame buffer操作和QT绘图显示同步,避免显示错误和不必要的麻烦,改善用户体验。 

为解决上述技术问题,本发明采用的第一个技术方案是:提供一种基于QT embedded的同步显示方法,所述同步显示方法包括:触发显示第一显示内容的目的QT绘图事件;执行所述QT绘图事件对应的绘图函数,并同时触发预定义的第一触发事件;其中,所述第一触发事件用于触发显示第二显示内容的帧缓存frame buffer操作,所述第二显示内容与所述第一显示内容为需要同步显示的内容;通过显示装置同步显示所述第一显示内容和所述第二显示内容。 

其中,在所述触发显示第一显示内容的目的QT绘图事件之前,所述方法还包括:预定义用于触发显示第二显示内容的帧缓存frame buffer操作的第一触发事件,并将所述第一触发事件设于执行所述绘图函数时被触发。 

其中,所述将所述第一触发事件设于执行所述绘图函数时被触发的步骤,具体包括:将所述第一触发事件设于所述目的QT绘图事件对应的绘图函数中。 

其中,在所述将所述第一触发事件设于所述目的QT绘图事件对应的绘图函数中的步骤之前,所述方法还包括:查找与所述frame buffer操作相对应的目的QT绘图事件的绘图函数,以将所述第一触发事件预设于所述绘图函数中。 

其中,所述第一显示内容为字符串或显示背景,所述第二显示内容为字符串。 

为解决上述技术问题,本发明采用的第二个技术方案是:提供一种 基于QT embedded的同步显示系统,所述同步显示系统包括:触发模块、执行模块以及显示模块,触发模块用于触发显示第一显示内容的目的QT绘图事件;执行模块用于执行所述QT绘图事件对应的绘图函数,并同时触发预定义的第一触发事件;其中,所述第一触发事件用于触发显示第二显示内容的帧缓存frame buffer操作,所述第二显示内容与所述第一显示内容为需要同步显示的内容;显示模块用于通过显示装置同步显示所述第一显示内容和所述第二显示内容。 

其中,所述同步显示系统还包括定义模块和事件设置模块,所述定义模块用于预定义用于触发显示第二显示内容的帧缓存frame buffer操作的第一触发事件;事件设置模块用于将所述第一触发事件设于执行所述绘图函数时被触发。 

其中,所述事件设置模块具体用于将所述第一触发事件设于所述目的QT绘图事件对应的绘图函数中。 

其中,所述同步显示系统还包括查找模块,所述查找模块用于查找与所述frame buffer操作相对应的目的QT绘图事件的绘图函数,以使得所述事件设置模块将所述第一触发事件预设于所述绘图函数中。 

其中,所述第一显示内容为字符串或显示背景,所述第二显示内容为字符串。 

为解决上述技术问题,本发明采用的第三个技术方案是:提供一种数控机床,所述数控机床包括:机床主体、安装在所述机床主体上的数控系统、与所述数控系统电连接的伺服驱动装置、连接所述伺服驱动装置的电机以及与所述电机连接的加工装置,所述数控装置包括如上所述的基于QT embedded的同步显示系统。 

本发明的有益效果是:区别于现有技术的情况,本发明通过定义的第一触发事件来触发执行frame buffer操作,并将所述第一触发事件设置于目的QT绘图事件的绘图函数时被触发,从而保证在执行目的QT绘图事件之后同步执行所述frame buffer操作,以确保frame buffer操作和QT embedded绘图同步显示,即:确保frame buffer操作和目的QT绘图事件的相应操作同步显示在同一显示器上。避免显示错误和不必要 的麻烦,改善用户体验。 

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 

图1是本发明同步显示方法一优选实施例的流程示意图; 

图2是本发明同步显示方法另一优选实施例的流程示意图; 

图3是本发明同步显示系统第一实施例的示意框图;以及 

图4是本发明同步显示系统第二实施例的示意框图。 

具体实施方式

参阅图1,图1是本发明同步显示方法一优选实施例的流程示意图,本实施例的同步显示方法优选的采用到基于QT embedded的系统中,其包括但不限于以下步骤。 

步骤S200,触发显示第一显示内容的目的QT绘图事件。 

步骤S210,执行QT绘图事件对应的绘图函数,并同时触发预定义的第一触发事件。 

其中,第一触发事件用于触发显示第二显示内容的帧缓存frame buffer操作,第二显示内容与第一显示内容为需要同步显示的内容,该第一显示内容和第二显示内容通过显示装置进行同步显示。 

步骤S220,通过显示装置同步显示第一显示内容和第二显示内容。 

需要说明的是,在步骤S220中,本实施例通过主动或者被动方式触发目的QT绘图事件,而在触发目的QT绘图事件并执行绘图函数时触发第一触发事件;以使绘图函数将内部显示缓存复制到外部显示缓存之后执行frame buffer操作,使得执行绘图函数所得到的第二显示内容与执行frame buffer操作所得到的第一显示内容同步显示,其中,可以通过显示驱动设备将被触发的第一触发事件设置于对应的目的QT绘图事件的绘图函数中,在触发后,驱动执行frame buffer操作实现对显示 内容的更新。 

另外,本实施例的frame buffer操作执行于QT embedded绘图函数和将内部显示缓存复制到外部显示缓存之后,将重复进行下一个循环,每个循环过程的步骤与上述过程相同,此处不再详述。这种方式能够保证frame buffer操作始终处于当前最新更新的QT embedded绘图背景中;因此实现了frame buffer操作和QT embedded绘图的同步显示,防止frame buffer更新的第一显示内容先于或落后QT embedded绘图更新的第二显示内容,可以有效地避免出现闪屏、显示错误和由于显示错误而造成的不必要麻烦,从而改善用户体验。 

其中,本实施例的第一显示内容可为字符串或显示背景,第二显示内容可为字符串。需要指出的是,本实施例还可以针对多个显示窗口的情况,其只需建立目的QT绘图事件的绘图函数与其相关联的触发事件的frame buffer操作一一对应即可,在本技术领域人员容易理解的范围内,不作细述。 

请参阅图2,图2是本发明同步显示方法另一优选实施例的流程示意图,该实施例中的显示方法包括如下步骤: 

步骤S100,预定义用于触发显示第二显示内容的帧缓存frame buffer操作的第一触发事件。 

步骤S110,将第一触发事件设于执行绘图函数时被触发。 

预定义的第一触发事件为与QT embedded中的QT事件机制相适配的触发事件,以能通过该第一触发事件触发驱动frame buffer程序;换而言之,本实施例利用QT embedded中的QT事件来控制frame buffer程序,进而实现对显示的控制。 

步骤S110可以具体包括:将第一触发事件设于目的QT绘图事件对应的绘图函数中。 

优选的,在步骤S110之前,本实施提供的同步显示方法还可包括:查找与frame buffer操作相对应的目的QT绘图事件的绘图函数,以将第一触发事件预设于绘图函数中。 

本实施例QT embedded的绘图功能可以通过按键事件、鼠标事件和拖放事件等被动方式的动作所触发,譬如鼠标控制窗口的最大、最小化,当然,QT embedded的绘图功能也可以由程序更新窗口画面等主动方式的动作所触发;在触发后,QT embedded的paintEvent()函数(绘图函数)进行响应处理,即在需要绘图时,会触发调用窗口的绘图函数,接着绘图函数把窗口需要更新的内容描画到QT的内部显示缓存中,最后才把内部显示缓存复制到显示屏的外部显示缓存上。 

不难看出,由于frame buffer操作为直接操作外部显示缓存,因此不能将frame buffer操作直接设置于绘图函数内,否则会出现frame buffer操作显示的第一显示内容比QT embedded的绘图显示的第二显示内容提前的缺陷。为了在不能将frame buffer操作直接设置于绘图函数内的情况下而解决不能同步显示的技术问题,本实施例将第一触发事件设于执行目的QT绘图事件对应的绘图函数时被触发。 

为了保证frame buffer操作和绘图函数是针对相同的一个显示窗口/界面,因此需要查找与frame buffer操作相对应的目的QT绘图事件的绘图函数,再将第一触发事件设于绘图函数中。本实施例通过使用QTembedded的事件机制查找QT embedded绘图的执行时间、并确定与目的QT绘图事件匹配的下个事件循环时间来确定frame buffer操作,其具体实现过程在本技术领域人员容易理解的范围内,不作细述。 

步骤S120,触发显示第一显示内容的目的QT绘图事件。 

步骤S130,执行QT绘图事件对应的绘图函数,并同时触发预定义的第一触发事件。 

其中,第一触发事件用于触发显示第二显示内容的帧缓存frame buffer操作,第二显示内容与第一显示内容为需要同步显示的内容,该第一显示内容和第二显示内容通过显示装置进行同步显示。 

步骤S140,通过显示装置同步显示第一显示内容和第二显示内容。 

需要说明的是,在步骤S140中,本实施例通过主动或者被动方式触发目的QT绘图事件,而在触发目的QT绘图事件并执行绘图函数时触发第一触发事件;以使绘图函数将内部显示缓存复制到外部显示缓存 之后执行frame buffer操作,使得执行绘图函数所得到的第二显示内容与执行frame buffer操作所得到的第一显示内容同步显示,其中,可以通过显示驱动设备将被触发的第一触发事件设置于对应的目的QT绘图事件的绘图函数中,在触发后,驱动执行frame buffer操作实现对显示内容的更新。 

另外,本实施例的frame buffer操作执行于QT embedded绘图函数和将内部显示缓存复制到外部显示缓存之后,将重复进行下一个循环,每个循环过程的步骤与上述过程相同,此处不再详述。这种方式能够保证frame buffer操作始终处于当前最新更新的QT embedded绘图背景中;因此实现了frame buffer操作和QT embedded绘图的同步显示,防止frame buffer更新的第一显示内容先于或落后QT embedded绘图更新的第二显示内容,可以有效地避免出现闪屏、显示错误和由于显示错误而造成的不必要麻烦,从而改善用户体验。 

其中,本实施例的第一显示内容可为字符串或显示背景,第二显示内容可为字符串。需要指出的是,本实施例还可以针对多个显示窗口的情况,其只需建立目的QT绘图事件的绘图函数与其相关联的触发事件的frame buffer操作一一对应即可,在本技术领域人员容易理解的范围内,不作细述。 

结合上述实施例并请参阅图3,图3是本发明同步显示系统第一实施例的示意框图,本实施例同步显示系统优选的采用到基于QTembedded的系统内,其包括但不限于触发模块31、执行模块32以及显示模块33。 

具体而言,触发模块31用于触发显示第一显示内容的目的QT绘图事件。 

执行模块32用于执行QT绘图事件对应的绘图函数,并同时触发预定义的第一触发事件;其中,第一触发事件用于触发显示第二显示内容的帧缓存frame buffer操作,第二显示内容与第一显示内容为需要同步显示的内容。 

显示模块33用于通过显示装置同步显示第一显示内容和第二显示 内容,其中,可以通过显示驱动设备将被触发的第一触发事件设置于对应的目的QT绘图事件的绘图函数中,在触发后,驱动执行frame buffer操作实现对显示内容的更新。显示模块33可以为液晶显示器等此处不做限定。 

其中,第一显示内容可为字符串或显示背景,第二显示内容可为字符串。此外,本实施例同步显示系统的具体实现过程请参阅前面同步显示方法的具体描述,在本技术领域人员容易结合理解的范围内,不再赘述。 

请参阅图4,图4是本发明同步显示系统第二实施例的示意框图;其中,本实施例同步显示系统优选的采用到基于QT embedded的系统内,其包括但不限于定义模块20、查找模块21、事件设置模块22、触发模块23、执行模块24以及显示模块25。 

在本实施例中,定义模块20用于预定义用于触发显示第二显示内容的帧缓存frame buffer操作的第一触发事件。其中,由定义模块20所定义的第一触发事件为与QT embedded中的QT事件机制相适配的触发事件,以能通过该预定义触发事件触发驱动frame buffer程序;换而言之,本实施例利用QT embedded中的QT事件来控制frame buffer程序,进而实现对显示的控制。 

事件设置模块22用于将定义模块20定义的第一触发事件设于执行目的QT绘图事件对应的绘图函数时被触发,以在触发目的QT绘图事件并执行绘图函数时触发第一触发事件,以使绘图函数将内部显示缓存复制到外部显示缓存之后执行frame buffer操作,使得执行绘图函数所得到的第二显示内容与执行frame buffer操作所得到的第一显示内容同步显示。 

需要说明的是,在优选的实施例中,事件设置模块22具体用于将第一触发事件设于目的QT绘图事件对应的绘图函数中。 

查找模块21用于查找与frame buffer操作相对应的目的QT绘图事件的绘图函数,以使得事件设置模块22可将第一触发事件设于绘图函数中。 

触发模块23用于触发显示第一显示内容的目的QT绘图事件,执行模块24用于执行QT绘图事件对应的绘图函数,并根据事件设置模块22之前的设置在执行上述绘图函数的同时触发预定义的第一触发事件;其中,第一触发事件用于触发显示第二显示内容的帧缓存frame buffer操作,第二显示内容与第一显示内容为需要同步显示的内容;显示模块25用于通过显示装置同步显示第一显示内容和第二显示内容,其中,可以通过显示驱动设备将被触发的第一触发事件设置于对应的目的QT绘图事件的绘图函数中,在触发后,驱动执行frame buffer操作实现对显示内容的更新。显示模块25可以为液晶显示器等此处不做限定。 

其中,第一显示内容可以为字符串或显示背景,第二显示内容可以为字符串。此外,本实施例同步显示系统的具体实现过程请参阅前面同步显示方法的具体描述,在本技术领域人员容易结合理解的范围内,不再赘述。 

本实施例提供的同步显示系统,通过主动或者被动方式触发目的QT绘图事件,而在触发目的QT绘图事件并执行绘图函数时触发第一触发事件;以使绘图函数将内部显示缓存复制到外部显示缓存之后执行frame buffer操作,使得执行绘图函数所得到的第二显示内容与执行frame buffer操作所得到的第一显示内容同步显示。这种方式能够保证frame buffer操作始终处于当前最新更新的QT embedded绘图背景中;因此实现了frame buffer操作和QT embedded绘图的同步显示,防止frame buffer更新的第一显示内容先于或落后QT embedded绘图更新的第二显示内容,可以有效地避免出现闪屏、显示错误和由于显示错误而造成的不必要麻烦,从而改善用户体验。 

本发明实施例还提供一种数控机床,该数控机床包括:机床主体、安装在上述机床主体上的数控系统、与上述数控系统电连接的伺服驱动装置、连接上述伺服驱动装置的电机以及与上述电机连接的加工装置,上述数控装置包括上述实施例所描述的基于QT embedded的同步显示系统,关于该同步显示系统的具体内容,请参考前述各实施例的描述,在此不再赘述。 

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号