Hello,
how i can creat menu in wx.ListCtrl(), for example when i double click in item list, i return menu like for wx.Menu().
Jump to Postcan you make yourself more clearer?
Post some code if possible ok?
Jump to Posti dont really get you man. Sorry
Jump to Postwhen you double click a listctrl the nearest logic menu should be popup menu. Is that what you want?
or you want to build a dynamic propagated menu based on user clicks????
can you make yourself more clearer?
Post some code if possible ok?
Thanks for reply!
So, look in this link: http://www.bankfotek.pl/image/913024.jpeg
I use wx.ListCtrl() and if you double click left ( mouse ) in my list, open new dialog, and if you one click right ( mouse ), i want creat menu like for wx.Menu().
Sorry, my EN is ... ;]
i dont really get you man. Sorry
#!/usr/bin/python
# mytaskbaricon.py
import wx
class MyTaskBarIcon(wx.TaskBarIcon):
def __init__(self, frame):
wx.TaskBarIcon.__init__(self)
self.frame = frame
self.SetIcon(wx.Icon('web.png', wx.BITMAP_TYPE_PNG), 'mytaskbaricon.py')
self.Bind(wx.EVT_MENU, self.OnTaskBarActivate, id=1)
self.Bind(wx.EVT_MENU, self.OnTaskBarDeactivate, id=2)
self.Bind(wx.EVT_MENU, self.OnTaskBarClose, id=3)
def CreatePopupMenu(self):
menu = wx.Menu()
menu.Append(1, 'Show')
menu.Append(2, 'Hide')
menu.Append(3, 'Close')
return menu
def OnTaskBarClose(self, event):
self.frame.Close()
def OnTaskBarActivate(self, event):
if not self.frame.IsShown():
self.frame.Show()
def OnTaskBarDeactivate(self, event):
if self.frame.IsShown():
self.frame.Hide()
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, (-1, -1), (290, 280))
self.tskic = MyTaskBarIcon(self)
self.Centre()
self.Bind(wx.EVT_CLOSE, self.OnClose)
def OnClose(self, event):
self.tskic.Destroy()
self.Destroy()
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'mytaskbaricon.py')
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(0)
app.MainLoop()
check, i want creat menu in wx.ListCtrl()
Okey, look - http://www.bankfotek.pl/image/913049.jpeg
my code, fisrt you must bind
self.listctrl.Bind(wx.EVT_RIGHT_DCLICK, self.right_dclick)
def right_dclick(self, event):
menu = wx.Menu()
menu.Append(-1, 'test')
menu.Append(-1, 'test')
menu.Append(-1, 'test')
menu.Append(-1, 'test')
menu.Append(-1, 'test')
menu.Append(-1, 'test')
self.PopupMenu(menu)
menu.Destroy()
when you double click a listctrl the nearest logic menu should be popup menu. Is that what you want?
or you want to build a dynamic propagated menu based on user clicks????
when you double click a listctrl the nearest logic menu should be popup menu. Is that what you want?
yes
but you code does not have any ref. to wxlistctrl????
You must create a listctrl and bind that to your popup menu method. Very simple ;-)
Yes, i now ;)
self.listctrl.Bind(wx.EVT_LEFT_DCLICK, self.left_dclick)
self.listctrl.Bind(wx.EVT_RIGHT_DCLICK, self.right_dclick)
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.