基于QT embedded的同步顯示方法、系統(tǒng)及數(shù)控機(jī)床的制作方法
【專利摘要】本發(fā)明公開了一種基于QT embedded的同步顯示方法、系統(tǒng)及數(shù)控機(jī)床,其中該方法包括:觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件;執(zhí)行所述QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件;其中,所述第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的幀緩存frame buffer操作,所述第二顯示內(nèi)容與所述第一顯示內(nèi)容為需要同步顯示的內(nèi)容;通過顯示裝置同步顯示所述第一顯示內(nèi)容和所述第二顯示內(nèi)容。本發(fā)明保證在執(zhí)行目的QT繪圖事件之后執(zhí)行frame buffer操作,確保frame buffer操作和QT embedded繪圖顯示同步,避免顯示錯(cuò)誤,改善用戶體驗(yàn)。
【專利說明】基于QT embedded的同步顯示方法、系統(tǒng)及數(shù)控機(jī)床
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及顯示【技術(shù)領(lǐng)域】,具體是涉及一種基于QT embedded的同步顯示方法,還涉及一種基于QT embedded的同步顯示系統(tǒng),以及涉及一種數(shù)控機(jī)床。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,Qt Embedded系統(tǒng)是圖形化界面開發(fā)工具QT的嵌入式版本系統(tǒng),即嵌入式圖形化界面開發(fā)工具系統(tǒng),其與Linux I/O接口以及frame buffer (巾貞緩沖,標(biāo)準(zhǔn)顯示設(shè)備驅(qū)動(dòng)接口,即一種顯示驅(qū)動(dòng)設(shè)備)直接交互,擁有較高的運(yùn)行效率,而且整體采用面向?qū)ο缶幊蹋瑩碛辛己玫伢w系架構(gòu)和編程模式。在具體的應(yīng)用中,QT Embedded系統(tǒng)用于嵌入式硬件架構(gòu)的常用軟件環(huán)境,其具有跨平臺(tái)的優(yōu)勢,相同的代碼可以適用于windows、Iinux等不同操作系統(tǒng)下。
[0003]然而,雖然在QT Embedded環(huán)境下使用frame buffer操作可以繞開QT本身的繪圖操作系統(tǒng),但是,F(xiàn)rame buffer的操作會(huì)和QT本身的繪圖顯示不同步。
[0004]具體而言,QT Embedded自身的繪圖在顯示上使用了雙緩存方法,對于在代碼里一系列的顯示更新需求,QT會(huì)先將更新的動(dòng)作在內(nèi)部顯示緩存中實(shí)現(xiàn),即先描繪到這個(gè)看不見(非顯示)的緩存里,再統(tǒng)一將內(nèi)部顯示緩存的內(nèi)容更新到顯示屏對應(yīng)的外部顯示緩存上,即描繪到屏幕上;而Frame buffer操作等于直接作用于顯示屏對應(yīng)的外部顯示緩存,即直接描繪在屏幕上。
[0005]不難理解的是,由于在進(jìn)行frame buffer操作時(shí)往往不知道QT自身的繪圖流程到達(dá)哪個(gè)步驟,導(dǎo)致常常會(huì)出現(xiàn)frame buffer更新的顯示內(nèi)容先于/落后QT更新的顯示內(nèi)容,即出現(xiàn)更新顯示內(nèi)容不同步的現(xiàn)象,造成閃屏、顯示區(qū)域不同步等,用戶體驗(yàn)差甚至產(chǎn)生顯示錯(cuò)誤而引起不必要的麻煩。
【發(fā)明內(nèi)容】
[0006]本發(fā)明主要解決現(xiàn)有技術(shù)Frame buffer操作和QT繪圖顯示不同步的技術(shù)問題,提供一種基于QT embedded的同步顯示方法、系統(tǒng)及數(shù)控機(jī)床,能夠保證Frame buffer操作和QT繪圖顯示同步,避免顯示錯(cuò)誤和不必要的麻煩,改善用戶體驗(yàn)。
[0007]為解決上述技術(shù)問題,本發(fā)明采用的第一個(gè)技術(shù)方案是:提供一種基于QTembedded的同步顯示方法,所述同步顯示方法包括:觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件;執(zhí)行所述QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件;其中,所述第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作,所述第二顯示內(nèi)容與所述第一顯示內(nèi)容為需要同步顯示的內(nèi)容;通過顯示裝置同步顯示所述第一顯示內(nèi)容和所述第二顯示內(nèi)容。
[0008]其中,在所述觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件之前,所述方法還包括:預(yù)定義用于觸發(fā)顯示第二顯示內(nèi)容的幀緩存frame buffer操作的第一觸發(fā)事件,并將所述第一觸發(fā)事件設(shè)于執(zhí)行所述繪圖函數(shù)時(shí)被觸發(fā)。
[0009]其中,所述將所述第一觸發(fā)事件設(shè)于執(zhí)行所述繪圖函數(shù)時(shí)被觸發(fā)的步驟,具體包括:將所述第一觸發(fā)事件設(shè)于所述目的QT繪圖事件對應(yīng)的繪圖函數(shù)中。
[0010]其中,在所述將所述第一觸發(fā)事件設(shè)于所述目的QT繪圖事件對應(yīng)的繪圖函數(shù)中的步驟之前,所述方法還包括:查找與所述frame buffer操作相對應(yīng)的目的QT繪圖事件的繪圖函數(shù),以將所述第一觸發(fā)事件預(yù)設(shè)于所述繪圖函數(shù)中。
[0011]其中,所述第一顯示內(nèi)容為字符串或顯示背景,所述第二顯示內(nèi)容為字符串。
[0012]為解決上述技術(shù)問題,本發(fā)明采用的第二個(gè)技術(shù)方案是:提供一種基于QTembedded的同步顯示系統(tǒng),所述同步顯示系統(tǒng)包括:觸發(fā)模塊、執(zhí)行模塊以及顯示模塊,觸發(fā)模塊用于觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件;執(zhí)行模塊用于執(zhí)行所述QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件;其中,所述第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作,所述第二顯示內(nèi)容與所述第一顯示內(nèi)容為需要同步顯示的內(nèi)容;顯示模塊用于通過顯示裝置同步顯示所述第一顯示內(nèi)容和所述第二顯示內(nèi)容。
[0013]其中,所述同步顯示系統(tǒng)還包括定義模塊和事件設(shè)置模塊,所述定義模塊用于預(yù)定義用于觸發(fā)顯示第二顯示內(nèi)容的幀緩存frame buffer操作的第一觸發(fā)事件;事件設(shè)置模塊用于將所述第一觸發(fā)事件設(shè)于執(zhí)行所述繪圖函數(shù)時(shí)被觸發(fā)。
[0014]其中,所述事件設(shè)置模塊具體用于將所述第一觸發(fā)事件設(shè)于所述目的QT繪圖事件對應(yīng)的繪圖函數(shù)中。
[0015]其中,所述同步顯示系統(tǒng)還包括查找模塊,所述查找模塊用于查找與所述framebuffer操作相對應(yīng)的目的QT繪圖事件的繪圖函數(shù),以使得所述事件設(shè)置模塊將所述第一觸發(fā)事件預(yù)設(shè)于所述繪圖函數(shù)中。
[0016]其中,所述第一顯示內(nèi)容為字符串或顯示背景,所述第二顯示內(nèi)容為字符串。
[0017]為解決上述技術(shù)問題,本發(fā)明采用的第三個(gè)技術(shù)方案是:提供一種數(shù)控機(jī)床,所述數(shù)控機(jī)床包括:機(jī)床主體、安裝在所述機(jī)床主體上的數(shù)控系統(tǒng)、與所述數(shù)控系統(tǒng)電連接的伺服驅(qū)動(dòng)裝置、連接所述伺服驅(qū)動(dòng)裝置的電機(jī)以及與所述電機(jī)連接的加工裝置,所述數(shù)控裝置包括如上所述的基于QT embedded的同步顯示系統(tǒng)。
[0018]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過定義的第一觸發(fā)事件來觸發(fā)執(zhí)行frame buffer操作,并將所述第一觸發(fā)事件設(shè)置于目的QT繪圖事件的繪圖函數(shù)時(shí)被觸發(fā),從而保證在執(zhí)行目的QT繪圖事件之后同步執(zhí)行所述frame buffer操作,以確保frame buffer操作和QT embedded繪圖同步顯不,即:確保frame buffer操作和目的QT繪圖事件的相應(yīng)操作同步顯示在同一顯示器上。避免顯示錯(cuò)誤和不必要的麻煩,改善用戶體驗(yàn)。
【專利附圖】
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1是本發(fā)明同步顯示方法一優(yōu)選實(shí)施例的流程示意圖;
[0021]圖2是本發(fā)明同步顯示方法另一優(yōu)選實(shí)施例的流程示意圖;
[0022]圖3是本發(fā)明同步顯示系統(tǒng)第一實(shí)施例的示意框圖;以及
[0023]圖4是本發(fā)明同步顯示系統(tǒng)第二實(shí)施例的示意框圖。
【具體實(shí)施方式】
[0024]參閱圖1,圖1是本發(fā)明同步顯示方法一優(yōu)選實(shí)施例的流程示意圖,本實(shí)施例的同步顯示方法優(yōu)選的采用到基于QT embedded的系統(tǒng)中,其包括但不限于以下步驟。
[0025]步驟S200,觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件。
[0026]步驟S210,執(zhí)行QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件。
[0027]其中,第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作,第二顯示內(nèi)容與第一顯示內(nèi)容為需要同步顯示的內(nèi)容,該第一顯示內(nèi)容和第二顯示內(nèi)容通過顯示裝置進(jìn)行同步顯示。
[0028]步驟S220,通過顯示裝置同步顯示第一顯示內(nèi)容和第二顯示內(nèi)容。
[0029]需要說明的是,在步驟S220中,本實(shí)施例通過主動(dòng)或者被動(dòng)方式觸發(fā)目的QT繪圖事件,而在觸發(fā)目的QT繪圖事件并執(zhí)行繪圖函數(shù)時(shí)觸發(fā)第一觸發(fā)事件;以使繪圖函數(shù)將內(nèi)部顯示緩存復(fù)制到外部顯示緩存之后執(zhí)行frame buffer操作,使得執(zhí)行繪圖函數(shù)所得到的第二顯示內(nèi)容與執(zhí)行frame buffer操作所得到的第一顯示內(nèi)容同步顯示,其中,可以通過顯示驅(qū)動(dòng)設(shè)備將被觸發(fā)的第一觸發(fā)事件設(shè)置于對應(yīng)的目的QT繪圖事件的繪圖函數(shù)中,在觸發(fā)后,驅(qū)動(dòng)執(zhí)行frame buffer操作實(shí)現(xiàn)對顯示內(nèi)容的更新。
[0030]另外,本實(shí)施例的frame buffer操作執(zhí)行于QT embedded繪圖函數(shù)和將內(nèi)部顯示緩存復(fù)制到外部顯示緩存之后,將重復(fù)進(jìn)行下一個(gè)循環(huán),每個(gè)循環(huán)過程的步驟與上述過程相同,此處不再詳述。這種方式能夠保證frame buffer操作始終處于當(dāng)前最新更新的QTembedded繪圖背景中;因此實(shí)現(xiàn)了 frame buffer操作和QT embedded繪圖的同步顯示,防止frame buffer更新的第一顯示內(nèi)容先于或落后QT embedded繪圖更新的第二顯示內(nèi)容,可以有效地避免出現(xiàn)閃屏、顯示錯(cuò)誤和由于顯示錯(cuò)誤而造成的不必要麻煩,從而改善用戶體驗(yàn)。
[0031]其中,本實(shí)施例的第一顯示內(nèi)容可為字符串或顯示背景,第二顯示內(nèi)容可為字符串。需要指出的是,本實(shí)施例還可以針對多個(gè)顯示窗口的情況,其只需建立目的QT繪圖事件的繪圖函數(shù)與其相關(guān)聯(lián)的觸發(fā)事件的frame buffer操作--對應(yīng)即可,在本【技術(shù)領(lǐng)域】人員容易理解的范圍內(nèi),不作細(xì)述。
[0032]請參閱圖2,圖2是本發(fā)明同步顯示方法另一優(yōu)選實(shí)施例的流程示意圖,該實(shí)施例中的顯示方法包括如下步驟:
[0033]步驟S100,預(yù)定義用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作的第一觸發(fā)事件。
[0034]步驟S110,將第一觸發(fā)事件設(shè)于執(zhí)行繪圖函數(shù)時(shí)被觸發(fā)。
[0035]預(yù)定義的第一觸發(fā)事件為與QT embedded中的QT事件機(jī)制相適配的觸發(fā)事件,以能通過該第一觸發(fā)事件觸發(fā)驅(qū)動(dòng)frame buffer程序;換而言之,本實(shí)施例利用QTembedded中的QT事件來控制frame buffer程序,進(jìn)而實(shí)現(xiàn)對顯示的控制。
[0036]步驟SllO可以具體包括:將第一觸發(fā)事件設(shè)于目的QT繪圖事件對應(yīng)的繪圖函數(shù)中。
[0037]優(yōu)選的,在步驟SllO之前,本實(shí)施提供的同步顯示方法還可包括:查找與framebuffer操作相對應(yīng)的目的QT繪圖事件的繪圖函數(shù),以將第一觸發(fā)事件預(yù)設(shè)于繪圖函數(shù)中。
[0038]本實(shí)施例QT embedded的繪圖功能可以通過按鍵事件、鼠標(biāo)事件和拖放事件等被動(dòng)方式的動(dòng)作所觸發(fā),譬如鼠標(biāo)控制窗口的最大、最小化,當(dāng)然,QT embedded的繪圖功能也可以由程序更新窗口畫面等主動(dòng)方式的動(dòng)作所觸發(fā);在觸發(fā)后,QT embedded的PaintEventO函數(shù)(繪圖函數(shù))進(jìn)行響應(yīng)處理,即在需要繪圖時(shí),會(huì)觸發(fā)調(diào)用窗口的繪圖函數(shù),接著繪圖函數(shù)把窗口需要更新的內(nèi)容描畫到QT的內(nèi)部顯示緩存中,最后才把內(nèi)部顯示緩存復(fù)制到顯示屏的外部顯示緩存上。
[0039]不難看出,由于frame buffer操作為直接操作外部顯示緩存,因此不能將framebuffer操作直接設(shè)置于繪圖函數(shù)內(nèi),否則會(huì)出現(xiàn)frame buffer操作顯示的第一顯示內(nèi)容比QT embedded的繪圖顯示的第二顯示內(nèi)容提前的缺陷。為了在不能將frame buffer操作直接設(shè)置于繪圖函數(shù)內(nèi)的情況下而解決不能同步顯示的技術(shù)問題,本實(shí)施例將第一觸發(fā)事件設(shè)于執(zhí)行目的QT繪圖事件對應(yīng)的繪圖函數(shù)時(shí)被觸發(fā)。
[0040]為了保證frame buffer操作和繪圖函數(shù)是針對相同的一個(gè)顯示窗口 /界面,因此需要查找與frame buffer操作相對應(yīng)的目的QT繪圖事件的繪圖函數(shù),再將第一觸發(fā)事件設(shè)于繪圖函數(shù)中。本實(shí)施例通過使用QTembedded的事件機(jī)制查找QT embedded繪圖的執(zhí)行時(shí)間、并確定與目的QT繪圖事件匹配的下個(gè)事件循環(huán)時(shí)間來確定frame buffer操作,其具體實(shí)現(xiàn)過程在本【技術(shù)領(lǐng)域】人員容易理解的范圍內(nèi),不作細(xì)述。
[0041]步驟S120,觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件。
[0042]步驟S130,執(zhí)行QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件。
[0043]其中,第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作,第二顯示內(nèi)容與第一顯示內(nèi)容為需要同步顯示的內(nèi)容,該第一顯示內(nèi)容和第二顯示內(nèi)容通過顯示裝置進(jìn)行同步顯示。
[0044]步驟S140,通過顯示裝置同步顯示第一顯示內(nèi)容和第二顯示內(nèi)容。
[0045]需要說明的是,在步驟S140中,本實(shí)施例通過主動(dòng)或者被動(dòng)方式觸發(fā)目的QT繪圖事件,而在觸發(fā)目的QT繪圖事件并執(zhí)行繪圖函數(shù)時(shí)觸發(fā)第一觸發(fā)事件;以使繪圖函數(shù)將內(nèi)部顯示緩存復(fù)制到外部顯示緩存之后執(zhí)行frame buffer操作,使得執(zhí)行繪圖函數(shù)所得到的第二顯示內(nèi)容與執(zhí)行frame buffer操作所得到的第一顯示內(nèi)容同步顯示,其中,可以通過顯示驅(qū)動(dòng)設(shè)備將被觸發(fā)的第一觸發(fā)事件設(shè)置于對應(yīng)的目的QT繪圖事件的繪圖函數(shù)中,在觸發(fā)后,驅(qū)動(dòng)執(zhí)行frame buffer操作實(shí)現(xiàn)對顯示內(nèi)容的更新。
[0046]另外,本實(shí)施例的frame buffer操作執(zhí)行于QT embedded繪圖函數(shù)和將內(nèi)部顯示緩存復(fù)制到外部顯示緩存之后,將重復(fù)進(jìn)行下一個(gè)循環(huán),每個(gè)循環(huán)過程的步驟與上述過程相同,此處不再詳述。這種方式能夠保證frame buffer操作始終處于當(dāng)前最新更新的QTembedded繪圖背景中;因此實(shí)現(xiàn)了 frame buffer操作和QT embedded繪圖的同步顯示,防止frame buffer更新的第一顯示內(nèi)容先于或落后QT embedded繪圖更新的第二顯示內(nèi)容,可以有效地避免出現(xiàn)閃屏、顯示錯(cuò)誤和由于顯示錯(cuò)誤而造成的不必要麻煩,從而改善用戶體驗(yàn)。
[0047]其中,本實(shí)施例的第一顯示內(nèi)容可為字符串或顯示背景,第二顯示內(nèi)容可為字符串。需要指出的是,本實(shí)施例還可以針對多個(gè)顯示窗口的情況,其只需建立目的QT繪圖事件的繪圖函數(shù)與其相關(guān)聯(lián)的觸發(fā)事件的frame buffer操作--對應(yīng)即可,在本【技術(shù)領(lǐng)域】人員容易理解的范圍內(nèi),不作細(xì)述。
[0048]結(jié)合上述實(shí)施例并請參閱圖3,圖3是本發(fā)明同步顯示系統(tǒng)第一實(shí)施例的示意框圖,本實(shí)施例同步顯示系統(tǒng)優(yōu)選的采用到基于QTembedded的系統(tǒng)內(nèi),其包括但不限于觸發(fā)模塊31、執(zhí)行模塊32以及顯示模塊33。
[0049]具體而言,觸發(fā)模塊31用于觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件。
[0050]執(zhí)行模塊32用于執(zhí)行QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件;其中,第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作,第二顯示內(nèi)容與第一顯示內(nèi)容為需要同步顯示的內(nèi)容。
[0051]顯示模塊33用于通過顯示裝置同步顯示第一顯示內(nèi)容和第二顯示內(nèi)容,其中,可以通過顯示驅(qū)動(dòng)設(shè)備將被觸發(fā)的第一觸發(fā)事件設(shè)置于對應(yīng)的目的QT繪圖事件的繪圖函數(shù)中,在觸發(fā)后,驅(qū)動(dòng)執(zhí)行frame buffer操作實(shí)現(xiàn)對顯示內(nèi)容的更新。顯示模塊33可以為液晶顯示器等此處不做限定。
[0052]其中,第一顯示內(nèi)容可為字符串或顯示背景,第二顯示內(nèi)容可為字符串。此外,本實(shí)施例同步顯示系統(tǒng)的具體實(shí)現(xiàn)過程請參閱前面同步顯示方法的具體描述,在本【技術(shù)領(lǐng)域】人員容易結(jié)合理解的范圍內(nèi),不再贅述。
[0053]請參閱圖4,圖4是本發(fā)明同步顯示系統(tǒng)第二實(shí)施例的示意框圖;其中,本實(shí)施例同步顯示系統(tǒng)優(yōu)選的采用到基于QT embedded的系統(tǒng)內(nèi),其包括但不限于定義模塊20、查找模塊21、事件設(shè)置模塊22、觸發(fā)模塊23、執(zhí)行模塊24以及顯示模塊25。
[0054]在本實(shí)施例中,定義模塊20用于預(yù)定義用于觸發(fā)顯示第二顯示內(nèi)容的幀緩存frame buffer操作的第一觸發(fā)事件。其中,由定義模塊20所定義的第一觸發(fā)事件為與QTembedded中的QT事件機(jī)制相適配的觸發(fā)事件,以能通過該預(yù)定義觸發(fā)事件觸發(fā)驅(qū)動(dòng)framebuffer程序;換而言之,本實(shí)施例利用QT embedded中的QT事件來控制frame buffer程序,進(jìn)而實(shí)現(xiàn)對顯示的控制。
[0055]事件設(shè)置模塊22用于將定義模塊20定義的第一觸發(fā)事件設(shè)于執(zhí)行目的QT繪圖事件對應(yīng)的繪圖函數(shù)時(shí)被觸發(fā),以在觸發(fā)目的QT繪圖事件并執(zhí)行繪圖函數(shù)時(shí)觸發(fā)第一觸發(fā)事件,以使繪圖函數(shù)將內(nèi)部顯示緩存復(fù)制到外部顯示緩存之后執(zhí)行frame buffer操作,使得執(zhí)行繪圖函數(shù)所得到的第二顯示內(nèi)容與執(zhí)行frame buffer操作所得到的第一顯示內(nèi)容同步顯示。
[0056]需要說明的是,在優(yōu)選的實(shí)施例中,事件設(shè)置模塊22具體用于將第一觸發(fā)事件設(shè)于目的QT繪圖事件對應(yīng)的繪圖函數(shù)中。
[0057]查找模塊21用于查找與frame buffer操作相對應(yīng)的目的QT繪圖事件的繪圖函數(shù),以使得事件設(shè)置模塊22可將第一觸發(fā)事件設(shè)于繪圖函數(shù)中。
[0058]觸發(fā)模塊23用于觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件,執(zhí)行模塊24用于執(zhí)行QT繪圖事件對應(yīng)的繪圖函數(shù),并根據(jù)事件設(shè)置模塊22之前的設(shè)置在執(zhí)行上述繪圖函數(shù)的同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件;其中,第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的幀緩存frame buffer操作,第二顯示內(nèi)容與第一顯示內(nèi)容為需要同步顯示的內(nèi)容;顯示模塊25用于通過顯示裝置同步顯示第一顯示內(nèi)容和第二顯示內(nèi)容,其中,可以通過顯示驅(qū)動(dòng)設(shè)備將被觸發(fā)的第一觸發(fā)事件設(shè)置于對應(yīng)的目的QT繪圖事件的繪圖函數(shù)中,在觸發(fā)后,驅(qū)動(dòng)執(zhí)行frame buffer操作實(shí)現(xiàn)對顯示內(nèi)容的更新。顯示模塊25可以為液晶顯示器等此處不做限定。
[0059]其中,第一顯示內(nèi)容可以為字符串或顯示背景,第二顯示內(nèi)容可以為字符串。此夕卜,本實(shí)施例同步顯示系統(tǒng)的具體實(shí)現(xiàn)過程請參閱前面同步顯示方法的具體描述,在本【技術(shù)領(lǐng)域】人員容易結(jié)合理解的范圍內(nèi),不再贅述。
[0060]本實(shí)施例提供的同步顯示系統(tǒng),通過主動(dòng)或者被動(dòng)方式觸發(fā)目的QT繪圖事件,而在觸發(fā)目的QT繪圖事件并執(zhí)行繪圖函數(shù)時(shí)觸發(fā)第一觸發(fā)事件;以使繪圖函數(shù)將內(nèi)部顯示緩存復(fù)制到外部顯示緩存之后執(zhí)行frame buffer操作,使得執(zhí)行繪圖函數(shù)所得到的第二顯示內(nèi)容與執(zhí)行frame buffer操作所得到的第一顯示內(nèi)容同步顯示。這種方式能夠保證frame buffer操作始終處于當(dāng)前最新更新的QT embedded繪圖背景中;因此實(shí)現(xiàn)了 framebuffer操作和QT embedded繪圖的同步顯示,防止frame buffer更新的第一顯示內(nèi)容先于或落后QT embedded繪圖更新的第二顯示內(nèi)容,可以有效地避免出現(xiàn)閃屏、顯示錯(cuò)誤和由于顯示錯(cuò)誤而造成的不必要麻煩,從而改善用戶體驗(yàn)。
[0061]本發(fā)明實(shí)施例還提供一種數(shù)控機(jī)床,該數(shù)控機(jī)床包括:機(jī)床主體、安裝在上述機(jī)床主體上的數(shù)控系統(tǒng)、與上述數(shù)控系統(tǒng)電連接的伺服驅(qū)動(dòng)裝置、連接上述伺服驅(qū)動(dòng)裝置的電機(jī)以及與上述電機(jī)連接的加工裝置,上述數(shù)控裝置包括上述實(shí)施例所描述的基于QTembedded的同步顯示系統(tǒng),關(guān)于該同步顯示系統(tǒng)的具體內(nèi)容,請參考前述各實(shí)施例的描述,在此不再贅述。
[0062]以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種基于QT embedded的同步顯示方法,其特征在于,所述同步顯示方法包括: 觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件; 執(zhí)行所述QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件;其中,所述第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作,所述第二顯示內(nèi)容與所述第一顯示內(nèi)容為需要同步顯示的內(nèi)容; 通過顯示裝置同步顯示所述第一顯示內(nèi)容和所述第二顯示內(nèi)容。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件之前,所述方法還包括: 預(yù)定義用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作的第一觸發(fā)事件,并將所述第一觸發(fā)事件設(shè)于執(zhí)行所述繪圖函數(shù)時(shí)被觸發(fā)。
3.根據(jù)權(quán)利要求2所述的同步顯示方法,其特征在于,所述將所述第一觸發(fā)事件設(shè)于執(zhí)行所述繪圖函數(shù)時(shí)被觸發(fā)的步驟,具體包括: 將所述第一觸發(fā)事件設(shè)于所述目的QT繪圖事件對應(yīng)的繪圖函數(shù)中。
4.根據(jù)權(quán)利要求3所述的同步顯示方法,其特征在于,在所述將所述第一觸發(fā)事件設(shè)于所述目的QT繪圖事件對應(yīng)的繪圖函數(shù)中的步驟之前,所述方法還包括: 查找與所述frame buffer操作相對應(yīng)的目的QT繪圖事件的繪圖函數(shù),以將所述第一觸發(fā)事件預(yù)設(shè)于所述繪圖函數(shù)中。
5.根據(jù)權(quán)利要求1?4任一項(xiàng)所述的同步顯示方法,其特征在于,所述第一顯示內(nèi)容為字符串或顯示背景,所述第二顯示內(nèi)容為字符串。
6.一種基于QT embedded的同步顯示系統(tǒng),其特征在于,所述同步顯示系統(tǒng)包括: 觸發(fā)模塊,用于觸發(fā)顯示第一顯示內(nèi)容的目的QT繪圖事件; 執(zhí)行模塊,用于執(zhí)行所述QT繪圖事件對應(yīng)的繪圖函數(shù),并同時(shí)觸發(fā)預(yù)定義的第一觸發(fā)事件;其中,所述第一觸發(fā)事件用于觸發(fā)顯示第二顯示內(nèi)容的巾貞緩存frame buffer操作,所述第二顯示內(nèi)容與所述第一顯示內(nèi)容為需要同步顯示的內(nèi)容; 顯示模塊,用于通過顯示裝置同步顯示所述第一顯示內(nèi)容和所述第二顯示內(nèi)容。
7.根據(jù)權(quán)利要求6所述的同步顯示系統(tǒng),其特征在于,所述同步顯示系統(tǒng)還包括: 定義模塊,用于預(yù)定義用于觸發(fā)顯示第二顯示內(nèi)容的幀緩存frame buffer操作的第一觸發(fā)事件; 事件設(shè)置模塊,用于將所述第一觸發(fā)事件設(shè)于執(zhí)行所述繪圖函數(shù)時(shí)被觸發(fā)。
8.根據(jù)權(quán)利要求7所述的同步顯示系統(tǒng),其特征在于,所述事件設(shè)置模塊具體用于將所述第一觸發(fā)事件設(shè)于所述目的QT繪圖事件對應(yīng)的繪圖函數(shù)中。
9.根據(jù)權(quán)利要求8所述的同步顯示系統(tǒng),其特征在于,所述同步顯示系統(tǒng)還包括: 查找模塊,用于查找與所述frame buffer操作相對應(yīng)的目的QT繪圖事件的繪圖函數(shù),以使得所述事件設(shè)置模塊將所述第一觸發(fā)事件預(yù)設(shè)于所述繪圖函數(shù)中。
10.根據(jù)權(quán)利要求6?9任一項(xiàng)所述的同步顯示系統(tǒng),其特征在于,所述第一顯示內(nèi)容為字符串或顯示背景,所述第二顯示內(nèi)容為字符串。
11.一種數(shù)控機(jī)床,其特征在于,所述數(shù)控機(jī)床包括:機(jī)床主體、安裝在所述機(jī)床主體上的數(shù)控系統(tǒng)、與所述數(shù)控系統(tǒng)電連接的伺服驅(qū)動(dòng)裝置、連接所述伺服驅(qū)動(dòng)裝置的電機(jī)以及與所述電機(jī)連接的加工裝置,所述數(shù)控裝置包括如權(quán)利要求6-10任一項(xiàng)所述的基于QT embedded的同步顯示系統(tǒng)。
【文檔編號(hào)】G06F3/14GK104331262SQ201410528481
【公開日】2015年2月4日 申請日期:2014年10月9日 優(yōu)先權(quán)日:2014年10月9日
【發(fā)明者】周國麟 申請人:北京配天技術(shù)有限公司