請問一下,如何實現類内容、方法的級聯調用?類似於控制項的内容、方法清單?如下圖所示系統自帶的内容節點出現的級聯選單:
XY图的属性的级联菜单
訪問自定義類的内容的時候不出現級聯選單,該如何實現呢?
自定义类属性访问,为何没有级联菜单?
在 11-25-2018 07:38 PM
屬性分級有點像物件的inheritance,每一個分格線,就相等一個物件的inheritacnce,所以當你要製作屬性的分格線時,要考慮是為了UI為做,還是你的程式有這樣的需求。
在 11-25-2018 08:15 PM
就像您的例程,如果类a1中有属性name且定义了读写方法,类b1中有属性age且定义了读写方法,同时类b1中有属性a1,在定义一个类c1,包含属性b1,如果要在类c1中访问a1的属性name,必须要先Read a1,然后再调用a1的Read Name方法获取属性name的值,能否在类c1中直接调用a1的Read Name访问属性name的值呢?如级联菜单那样,
在 11-25-2018 11:51 PM
如果已經A1定義好的節點,原則在C類inheritance時,就已經一起作用了。如下圖所示
在 11-26-2018 01:15 AM
您的意思我明白,在繼承關係中可以直接訪問父類中定義了訪問方法的内容,但是如果類之間沒有繼承關係呢?
在 11-26-2018 03:20 AM
如果已經沒有繼承關係,那就是直接使用A1物件本身的功能,如果要存取A1的資料,應該就要在C的類這裡寫對應的功能,這裡要算程式設計的範疇。與A1本身的類別並沒有關係,以上是我的觀點。
在 11-26-2018 07:44 AM
当然可以在C中先单独定义访问A的属性name的方法,以后再用A的name时调用这个方法,但这样只是简化的框图,还是要通过两个属性节点才能访问的A的属性name,先获得A的引用再获取name,如果在C中要访问A的10属性或更多,岂不是要额外在C中定义10个访问方法吗?
是不是说自定义的类无法实现像访问控件属性那样的级联菜单呢?
11-26-2018 08:51 AM - 已編輯 11-26-2018 08:56 AM
LabVIEW的控件本身就是物件導向的方式完成的,所以你如果要做成的一樣的方式就只能靠inheritance加上其他手法來完成了。
無法只使用設定的方式達成你要的目的,以上是我的看法。
繼承後會出現分隔線,這部分如@micro_yang所說的無誤。
至於要做到多階層選單,則需要進行以下設定:
首先設定物件屬性:
在Item Settings頁面中可以設定Localized Long Name,在此可以鍵入多階層描述如Menu1:Menu1-1:Item1
在選單中即可產生多層選單:
此外設定Localized Short Name
則會反映在Property Node的文字上
上圖可看到選單中的Property 4選出來會變成Property 444,常用在增強或簡化Property Node上的節點描述使用。
選我正解XD!
在 11-29-2018 06:46 PM
@Marco_Yang 已写:
LabVIEW的控件本身就是物件導向的方式完成的,所以你如果要做成的一樣的方式就只能靠inheritance加上其他手法來完成了。
無法只使用設定的方式達成你要的目的,以上是我的看法。
您的意思是繼承控制項類嗎?但是LabVIEW只能繼承Object吧,如何通過繼承來實現級聯選單的管道呢?能否給一個簡單的示例呢?謝謝。