DataGrid 之右鍵選單

2022-04-30 17:48:10 字數 1002 閱讀 7299

flex的右鍵選單是通過contextmenu來實現的。談到向datagrid新增右鍵選單,肯定有人會想到直接設定datagrid的例項(id為dg,後面均用dg代替)的contextmenu屬性就行了,還有人會想到通過設定itemrenderer來實現右鍵選單功能。

下面以個人觀點分析下著兩種方法。具體怎麼實現就不說了,主要是談論下各自的優缺點

一、設定dg的contextmenu屬性,這種方法的優點是**簡單、實現方便、讓人容易看懂明白。缺點是,這樣新增的右鍵選單,是新增到整個dg上面了,在header上以及沒有資料的地方都會出現右鍵選單。當你想對某條資料實現右鍵功能時。這種方法很不準確,不能體現當前彈出的選單對應的是哪條資料,試想header上彈出右鍵選單「詳細資訊」會讓人感覺很奇怪。

二、通過設定itemrenderer來實現右鍵功能。優點是,它的優點正好彌補了第一種方法的缺點。他能非常準確的顯示當前彈出的右鍵選單對應的是哪條資料。並且在header和沒有資料的地方不會彈出右鍵選單,它的缺點是,個人感覺有點複雜,首先得新建itemrenderer類,在這個類裡設定右鍵選單,然後設定dg的itemrenderer。感覺不太方便比較麻煩。

於是我想到了我自己的寫法:

其實就是新增了兩個函式,感覺挺方便的。

**//

新增右鍵選單

public 

function

addcontextmenu(cmarr:array,menuitemselfunc:function):

void

}private 

function

menuselectevt(e:contextmenuevent):

void

else

for(

vari:uint=0

;i<

cm.customitems.length;i++)

_dg.validatenow();

}它的特點是,當滑鼠點選到header或沒有資料的地方時選單是灰色的,只有點選到資料上時選單才可用

qt之右鍵選單 QMenu

以widget為例 widget的子類都可以如widget一樣設定右鍵選單 步驟一 根據文件的解釋,在將widget 設定為 qt customcontextmenu後,會觸發customcontextmenuresquested 函式,這個函式是乙個signal 步驟二 定義乙個槽函式void s...

(四)Qt之右鍵選單

作為一種互動性強 使用方便的右鍵選單在程式中是非常常用的,在qt中可以輕鬆的實現。qmenu menu 新增選單項,指定圖示 名稱 響應函式menu.addaction qicon 1.png qstringliteral 新增 this,slot onbscgrouprightaction 在滑鼠...

Flex 中的DataGrid新增右鍵選單

verticalalign middle backgroundcolor white creationcomplete init cm.addeventlistener contextmenuevent.menu select,contextmenu menuselect private funct...