2014-04-14 4 views
0

나는 메뉴가 있습니다설정 아이콘

Projects 
    |-Project A 
    | |- Open 
    | |- Run 
    | \- Close 
    \-Project B 
     |- Open 
     |- Run 
     \- Close 

내가 wx.ID_OPEN 아이콘을 가지고 "열기"메뉴 항목을 모두 싶습니다을 -하지만 그것은 본다 여러 메뉴 항목에 동일한 ID가 있으면 이벤트 시스템을 혼란스럽게합니다. ID를 고유하게 설정할 수있는 방법이있을뿐만 아니라 아이콘을 동일하게 설정합니까?

은 (내가 사용하고있어 그 때문에 질문 wxPython에로 태그,하지만 난이 아마 언어 별? 아니라고 생각)

답변

1

사용하는 것과 동일한 ID 그러나 이것은 혼란을 수정해야 다르게 이벤트를 바인딩 .

pa_open = wx.MenuItem(pa_menu, wx.ID_OPEN, "Open", "", wx.ITEM_NORMAL) 
pb_open = wx.MenuItem(pb_menu, wx.ID_OPEN, "Open", "", wx.ITEM_NORMAL) 

pa_open.Bind(wx.EVT_MENU, self.onOpenProjectA) 
pb_open.Bind(wx.EVT_MENU, self.onOpenProjectB) 

또는 그냥 같은 아이콘 경우

당신은 당신이 wx.ID_ANY 각 메뉴 항목을 설정하고 아이콘을 설정 ArtProvider를 사용할 수 있습니다합니다. 예를 들면 다음과 같습니다.

+0

프로젝트는 목록에서 나왔으므로 각기 다른 열기 함수를 미리 정의 할 수는 없습니다. (런타임에 정의 할 수 있습니다 ... – Shish

0

열린 아이콘을 찾아서 SetBitmap() 메소드를 통해 해당 비트 맵을 사용하도록 각 메뉴 항목을 설정합니다. 이 같은 것이 작동해야합니다.

img = wx.Image(img_filepath, wx.BITMAP_TYPE_ANY) 
myMenuItem.SetBitmap(wx.BitmapFromImage(img)) 

정확한 크기 (예 : 10x10)의 이미지가 나오는지 확인하십시오.