NI產品與技術 討論區

cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

LabVIEW内容節點和調用節點的級聯選單如何實現

請問一下,如何實現類内容、方法的級聯調用?類似於控制項的内容、方法清單?如下圖所示系統自帶的内容節點出現的級聯選單:

 XY图的属性的级联菜单.pngXY图的属性的级联菜单

訪問自定義類的内容的時候不出現級聯選單,該如何實現呢?

自定义类属性访问.png自定义类属性访问,为何没有级联菜单?

0 Kudos
Message 1 of 13
(371 Views)

屬性分級有點像物件的inheritance,每一個分格線,就相等一個物件的inheritacnce,所以當你要製作屬性的分格線時,要考慮是為了UI為做,還是你的程式有這樣的需求。Snipaste_2018-11-26_09-33-23.png

0 Kudos
Message 2 of 13
(337 Views)

就像您的例程,如果类a1中有属性name且定义了读写方法,类b1中有属性age且定义了读写方法,同时类b1中有属性a1,在定义一个类c1,包含属性b1,如果要在类c1中访问a1的属性name,必须要先Read a1,然后再调用a1的Read Name方法获取属性name的值,能否在类c1中直接调用a1的Read Name访问属性name的值呢?如级联菜单那样,

通过级联菜单直接访问属性.png

0 Kudos
Message 3 of 13
(333 Views)

如果已經A1定義好的節點,原則在C類inheritance時,就已經一起作用了。如下圖所示

Snipaste_2018-11-26_13-48-15.pngSnipaste_2018-11-26_13-48-15.png

0 Kudos
Message 4 of 13
(328 Views)

您的意思我明白,在繼承關係中可以直接訪問父類中定義了訪問方法的内容,但是如果類之間沒有繼承關係呢?

通过级联菜单直接访问属性3.png通过级联菜单直接访问属性2.png

0 Kudos
Message 5 of 13
(320 Views)
Highlighted

如果已經沒有繼承關係,那就是直接使用A1物件本身的功能,如果要存取A1的資料,應該就要在C的類這裡寫對應的功能,這裡要算程式設計的範疇。與A1本身的類別並沒有關係,以上是我的觀點。

0 Kudos
Message 6 of 13
(313 Views)

当然可以在C中先单独定义访问A的属性name的方法,以后再用A的name时调用这个方法,但这样只是简化的框图,还是要通过两个属性节点才能访问的A的属性name,先获得A的引用再获取name,如果在C中要访问A的10属性或更多,岂不是要额外在C中定义10个访问方法吗?

是不是说自定义的类无法实现像访问控件属性那样的级联菜单呢?

0 Kudos
Message 7 of 13
(308 Views)

LabVIEW的控件本身就是物件導向的方式完成的,所以你如果要做成的一樣的方式就只能靠inheritance加上其他手法來完成了。

無法只使用設定的方式達成你要的目的,以上是我的看法。

0 Kudos
Message 8 of 13
(303 Views)

繼承後會出現分隔線,這部分如@micro_yang所說的無誤。

至於要做到多階層選單,則需要進行以下設定:

首先設定物件屬性:

a01.png

在Item Settings頁面中可以設定Localized Long Name,在此可以鍵入多階層描述如Menu1:Menu1-1:Item1

在選單中即可產生多層選單:

a02.png

此外設定Localized Short Name

a04.png

則會反映在Property Node的文字上

a03.png

上圖可看到選單中的Property 4選出來會變成Property 444,常用在增強或簡化Property Node上的節點描述使用。

 

選我正解XD!

 

Node Health Tech. Project Manager, Certified LabVIEW Architect.
0 Kudos
Message 9 of 13
(287 Views)

@Marco_Yang  已写:

LabVIEW的控件本身就是物件導向的方式完成的,所以你如果要做成的一樣的方式就只能靠inheritance加上其他手法來完成了。

無法只使用設定的方式達成你要的目的,以上是我的看法。


您的意思是繼承控制項類嗎?但是LabVIEW只能繼承Object吧,如何通過繼承來實現級聯選單的管道呢?能否給一個簡單的示例呢?謝謝。

0 Kudos
Message 10 of 13
(253 Views)