新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > Tree控件的使用

        Tree控件的使用

        作者: 時間:2017-01-09 來源:網絡 收藏



        圖 17 Edit Tree Items方法
        假如需要給圖 18左側的Tree控件增加一個結點,使之變成右側的Tree控件,則可以使用Edit Tree Items. Add Item方法。


        圖 18 增加一個結點(Item項)
        圖 19所示為增加結點的源代碼,其中Parent Tag為B,表示B是待插入項的父結點,如果待插入結點沒有父結點則設置為空就可以了。Child Position表示待插入項是第幾個子項,很明顯應該填入1。Left Cell String是待插入項第1列的字符串。Child Text是一個數組,表示待插入項第2列之后的所有字符串。Child Tag是待插入項的Tag值,不能設置為空或者與其它的Tag值相同。


        圖 19 增加一個結點(Item項)源代碼

        1.4.4自定義Tree結點的符號

        本文引用地址:http://www.104case.com/article/201701/337511.htm

        在Custom Item Symbols方法中,可以動態設置或者自定義結點的符號。如前面所述,LabVIEW共提供了42種內置的符號,每一個符號從上之下從左至右有一個唯一的Index號(從0開始)。
        如果需要給圖 18中新加入的F結點增加一個自定義的符號,可以使用圖 20所示的代碼。首先使用屬性結點,將F結點的符號設置為1號符號(符號的Index可以在右鍵快捷菜單的Item Symbol菜單項中查詢);然后使用Custom Item Symbol. Set Symbol方法,將1號符號修改為自定義的圖片;這樣就Tree控件中所有的1號符號會變為新的符號。


        圖 20 自定義結點的符號

        1.5Tree控件的界面刷新

        本例將介紹一個特殊的技巧,不僅僅使用在Tree控件中,也可以使用在其它的界面更新中。本例將實現如圖 21所示的功能,使用程序自動向Tree控件加入1000個結點,并且每個結點的底色依次交叉不同。


        圖 21 Tree控件例子前面板
        底層代碼【下載】如圖 22所示。首先使用Edit Tree Items. Delete方法刪除Tree控件中所有的內容(不連接Tag表示刪除所有內容);然后加入一個N=1000的For循環,每次循環都加入一個新的Item項并且設置該項的背景色。Child Positon設置為-1表示新加入的項在現有項的最末尾處。


        圖 22 Tree控件例子背面板
        運行該VI,可以發現程序確實能夠實現相應的功能,但是運行時間較長。這主要是由于Tree控件刷新導致的,每次循環運行,都需要修改結點的背景色,這使得整個界面的刷新速度非常慢。事實上,我們并不需要觀察Tree控件增加的過程,只需要快速地獲取到結果就可以了。例如在循環運行時,可以并不馬上改變Tree控件的外觀,而是程序運行完成后,一次性地刷新Tree控件的外觀,這樣可以大大地提高程序運行的速度。修改后的代碼如圖 23所示。


        圖 23 Tree控件例子背面板_修改后
        上圖中使用了LabVIEW提供的Defer Panel Updates屬性,該屬性可以延遲整個界面(Panel)的刷新。也就是說當修改界面上控件的值和外觀時,并不是馬上對界面上的控件進行刷新,而是在恰當的時候(當LabVIEW重繪前面板界面的時候)再統一進行刷新。因此,在開始運行時將Defer Panel Updates屬性設置為true,在程序結束后再將Defer Panel Updates屬性設置為false強制對前面板控件進行刷新。


        上一頁 1 2 3 4 下一頁

        關鍵詞: Tree控件LabVIE

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武平县| 夏河县| 松原市| 琼海市| 额敏县| 六盘水市| 平远县| 土默特左旗| 瓮安县| 咸阳市| 南平市| 远安县| 宁津县| 罗定市| 封丘县| 洛扎县| 东兴市| 永康市| 车险| 海晏县| 恩施市| 饶阳县| 康马县| 吉林省| 永胜县| 土默特左旗| 东乡县| 沿河| 资兴市| 林西县| 青岛市| 岐山县| 包头市| 南昌市| 石阡县| 镇巴县| 永吉县| 洞头县| 舒兰市| 闸北区| 屯留县|