wxpython - Is there any Shortcut associated with key '2'(keycode=50) in Flatmenu? -


i trying develop application displaying flatmenu,toolbar , following panel.in toolbar have put textctrl. when trying enter key '2' not getting typed.i tried debug code printing keycode in log in textctrl not getting typed.apart '2' other key able enter.

code

import wx import os import sys import webbrowser import wx.lib.scrolledpanel scrolled import wx.lib.agw.flatmenu fm wx.log.setloglevel(0)   class mainpanel(wx.panel):      def __init__(self, parent):         """constructor"""         wx.panel.__init__(self, parent,style=wx.tab_traversal)                         class myframe(wx.frame):      def __init__(self, parent):          wx.frame.__init__(self, parent, -1, "flatmenu demo")         self.toolbar = self.createtoolbar()         self.textctrl = wx.textctrl( self.toolbar, wx.id_any, value='',size=(100, -1))         self.textctrl.bind(wx.evt_key_up, self.handlekeypress)         self.createtoolbaritem(0,1,"connect", "new_icons/connect.png", self.stopliveupdate)         self.toolbar.doinserttool(1,2, '', wx.bitmap('new_icons/install_app.png'))         self.toolbar.doinserttool(2,3, '', wx.bitmap('new_icons/uninstall.png'))         self.toolbar.insertcontrol(3,self.textctrl)         self.toolbar.realize()         self.createmenu()         self.panel = mainpanel(self)         self.panelsizer = wx.boxsizer(wx.vertical)         self.panelsizer.add( self.menubar, 0,wx.all | wx.align_left | wx.expand )         self.panelsizer.add( self.toolbar, 0, wx.all | wx.align_left | wx.expand )         self.panelsizer.add( self.panel, 1, wx.all | wx.align_left | wx.expand)         self.setsizer(self.panelsizer)         self.layout()      def handlekeypress(self,e):         keycode = e.getkeycode()         print keycode         if keycode==50:             print 'entered'             e.skip()                     else:             print 'not entered'             return           e.skip()      def createmenu(self):         self.menubar = fm.flatmenubar(self,-1)          file = fm.flatmenu()         conn = fm.flatmenu()         = fm.flatmenu()         app  = fm.flatmenu()         log = fm.flatmenu()         file.append(1,"&start stream")         file.append(2,"&stop stream")         type = fm.flatmenu()         self.type1 = fm.flatmenuitem(type, 3, "type1", wx.item_check)         type.appenditem(self.type1)         self.type2 = fm.flatmenuitem(type, 4, "type2", wx.item_check)         type.appenditem(self.type2)         file.appendmenu(5, "emulator &tuner-type",type)         self.quit = file.append(6, "&exit \talt+f4", "quit application")         conn.append(7,"&connect")         conn.append(8,"&disconnect")         conn.append(9,"&power off")         conn.append(10,"&shut down")         app.append(11,"&install app")         app.append(12,"&transfer files")         app.append(13,"&run app")         app.append(14,"&kill app")         app.append(15,"&update app")         app.append(16,"&uninstall app")         log.append(17,"&save log")         log.append(18,"&clear log")         log.append(19,"&refresh log")         help.append(20,"&home")         help.append(21,"&google")         help.append(22,"&user manual     \tf1")         help.append( 23, "&about")          self.menubar.append(file, "&start")         self.menubar.append(conn, "&connection")         self.menubar.append(app, "&app")         self.menubar.append(log, "&log")         self.menubar.append(help, "&help")         self.bind(fm.evt_flat_menu_selected, self.onquit, id=5)         self.bind(fm.evt_flat_menu_selected,self.launchgoogle,id=21)      def onquit(self,e=none):         self.destroy()      def launchgoogle(self,event=none):         webbrowser.open('http://google.com')      def startliveupdate(self, event):         self.createtoolbaritem(0,1,"connect", "new_icons/connect.png", self.stopliveupdate)      def stopliveupdate(self, event):         self.createtoolbaritem(0,1,"disconnect", "new_icons/disconnected.png", self.startliveupdate)       def createtoolbaritem(self,pos,id,label,imagename,method=none):         self.toolbar.removetool(id)         self.pos = self.toolbar.gettoolscount()         self.toolbar.doinserttool(pos,id, label, wx.bitmap(imagename))         self.toolbar.realize()         self.bind(wx.evt_tool, method, id=id)   app = wx.app(0)  frame = myframe(none) app.settopwindow(frame) frame.show()  app.mainloop() 

the code posted didn't work @ on system, result of how trying use sizer on panel didn't have children. modified code bit better me (windows 7, wxpython 2.9.4) , traced issue how setting flatmenu. know there flatmenu.py demo?

https://github.com/crankycoder/wxpython-2.9.2.4/blob/master/wxpython/demo/agw/flatmenu.py

taking ideas added few entries flatmenu , working number 2, assuming using special id (generally recommendation use wx.id_any rather hard-coded ids, since ids have special effects). please check commented-out code , see how continue on modifying work.

big problem have caused issues over-riding reserved words 'file' , 'type'.

import wxversion import wx import os import sys import webbrowser import wx.lib.scrolledpanel scrolled import wx.lib.agw.flatmenu fm wx.log.setloglevel(0)   class mainpanel(wx.panel):      def __init__(self, parent):         """constructor"""         wx.panel.__init__(self, parent,style=wx.tab_traversal)                         class myframe(wx.frame):      def __init__(self, parent):          wx.frame.__init__(self, parent, -1, "flatmenu demo")         self.panel = mainpanel(self)         self.panelsizer = wx.boxsizer(wx.vertical)         #self.toolbar = self.createtoolbar(style=wx.tb_flat|wx.wants_chars)         self.toolbar = wx.toolbar(self.panel, style=wx.tb_flat)         self.textctrl = wx.textctrl( self.toolbar, wx.id_any, value='',size=(100, -1), style=wx.wants_chars)         self.textctrl.bind(wx.evt_char, self.handlekeypress)         self.toolbar.doinserttool(0,1,"connect", wx.bitmap("gear_blue.png"))         self.toolbar.doinserttool(1,2, '', wx.bitmap('gear_blue.png'))         self.toolbar.doinserttool(2,3, '', wx.bitmap('tools.png'))         t = self.toolbar.insertcontrol(3,self.textctrl)         self.toolbar.realize()         self.createmenu()          self.panelsizer.add( self.menubar, 0, wx.all | wx.align_left | wx.expand )         self.panelsizer.add( self.toolbar, 0, wx.all | wx.align_left | wx.expand )         #self.panelsizer.add( self.panel, 1, wx.all | wx.align_left | wx.expand)         self.panel.setsizer(self.panelsizer)         self.panel.layout()      def handlekeypress(self,e):         keycode = e.getkeycode()         print keycode         if keycode==50:             print 'entered'             #return             #e.skip()                     else:             print 'not entered'             #return           e.skip()      def createmenu(self):         self.menubar = fm.flatmenubar(self.panel,-1)          f = fm.flatmenu()         conn = fm.flatmenu()         h = fm.flatmenu()         app  = fm.flatmenu()         log = fm.flatmenu()           item = fm.flatmenuitem(f, wx.id_any, "&start stream\tctrl+s", "start stream", wx.item_normal)         f.appenditem(item)          item = fm.flatmenuitem(f, wx.id_any, "&stop stream\tctrl+s", "stop stream", wx.item_normal)         f.appenditem(item)         """         #f.append(2,"&stop stream")         t = fm.flatmenu()         self.type1 = fm.flatmenuitem(t, 3, "type1", wx.item_check)         t.appenditem(self.type1)         self.type2 = fm.flatmenuitem(t, 4, "type2", wx.item_check)         t.appenditem(self.type2)         f.appendmenu(5, "emulator &tuner-type",t)         self.quit = f.append(6, "&exit \talt+f4", "quit application")         conn.append(7,"&connect")         conn.append(8,"&disconnect")         conn.append(9,"&power off")         conn.append(10,"&shut down")         app.append(11,"&install app")         app.append(12,"&transfer files")         app.append(13,"&run app")         app.append(14,"&kill app")         app.append(15,"&update app")         app.append(16,"&uninstall app")         log.append(17,"&save log")         log.append(18,"&clear log")         log.append(19,"&refresh log")         h.append(20,"&home")         h.append(21,"&google")         h.append(22,"&user manual     \tf1")         h.append( 23, "&about")         """         self.menubar.append(f, "&start")          self.menubar.append(conn, "&connection")         self.menubar.append(app, "&app")         self.menubar.append(log, "&log")         self.menubar.append(h, "&help")         #self.bind(fm.evt_flat_menu_selected, self.onquit, id=5)         #self.bind(fm.evt_flat_menu_selected,self.launchgoogle,id=21)      def onquit(self,e=none):         self.destroy()      def launchgoogle(self,event=none):         webbrowser.open('http://google.com')      def startliveupdate(self, event):         self.createtoolbaritem(0,1,"connect", "gear_blue.png", self.stopliveupdate)      def stopliveupdate(self, event):         self.createtoolbaritem(0,1,"disconnect", "tools.png", self.startliveupdate)       def createtoolbaritem(self,pos,id,label,imagename,method=none):         self.toolbar.removetool(id)         self.pos = self.toolbar.gettoolscount()         self.toolbar.doinserttool(pos,id, label, wx.bitmap(imagename))         self.toolbar.realize()         self.bind(wx.evt_tool, method, id=id)   app = wx.app(0)  frame = myframe(none) app.settopwindow(frame) frame.show()  app.mainloop() 

Comments

Popular posts from this blog

java - Intellij Synchronizing output directories .. -

git - Initial Commit: "fatal: could not create leading directories of ..." -