import wx
app = wx.App(0)
x = wx.GetDisplaySize()[0]
y = wx.GetDisplaySize()[1]
Reference :
wxPython-users - Screen resolution
import wx
app = wx.App(0)
x = wx.GetDisplaySize()[0]
y = wx.GetDisplaySize()[1]
import wx
import wx.html
if __name__ == "__main__" :
app = wx.App()
frame = wx.Frame(None)
htmlwin = wx.html.HtmlWindow(frame)
htmlwin.SetPage("Hello, World !
")
frame.Show()
app.MainLoop()
self.frame.SetBackgroundColour( (255,255,0) )
self.Bind(wx.EVT_KEY_DOWN, self.on_key_down)
def on_key_down(self, event):
"""Key down event handler."""
key = event.KeyCode()
controlDown = event.ControlDown()
altDown = event.AltDown()
shiftDown = event.ShiftDown()
# Cut to the clipboard.
if (controlDown and key in (ord('C'), ord('c'))):
copy()
# Insert the next command from the history buffer.
else:
event.Skip()
wx_tools classimport wx_tools
class Frame(wx.Frame):
def__init__(self,*args,**keywords):
self.__init_key_handlers()
def__init_key_handlers(self):'''Initialize key shortcuts.'''self.Bind(wx.EVT_KEY_DOWN,self.on_key_down)defcopy():print 'copy'self.key_handlers={Key(ord('C'), cmd=True): copy,}defon_key_down(self, event):'''wx.EVT_KEY_DOWN handler.'''key=Key.get_from_key_event(event)handler=self.key_handlers.get(key,None)ifhandler:handler()else:event.Skip()
self.frame.Bind(wx.EVT_CLOSE, self.OnClose)
def OnClose(self, evt):
print 'cannot close'
# dlg = wx.MessageDialog(None, "Is this explanation OK?",
# 'A Message Box',
# wx.YES_NO | wx.ICON_QUESTION)
# retCode = dlg.ShowModal()
# if (retCode == wx.ID_YES):
# self.frame.Destroy()
# print "yes"
# else:
# print "no"
import win32con #for the VK keycodes
def regHotKey(self):
self.hotKeyId = 100
self.frame.RegisterHotKey(
self.hotKeyId, #a unique ID for this hotkey
win32con.MOD_CONTROL + win32con.MOD_SHIFT , #the modifier key
win32con.VK_DELETE) #the key to watch for
self.regHotKey()
self.Bind(wx.EVT_HOTKEY, self.OnClose, id=self.hotKeyId)
class Key(object):
'''A key combination.'''
def __init__(self, key_code, cmd=False, alt=False, shift=False):
self.key_code = key_code
'''The numerical code of the pressed key.'''
self.cmd = cmd
'''Flag saying whether the ctrl/cmd key was pressed.'''
self.alt = alt
'''Flag saying whether the alt key was pressed.'''
self.shift = shift
'''Flag saying whether the shift key was pressed.'''
@staticmethod
def get_from_key_event(event):
'''Construct a Key from a wx.EVT_KEY_DOWN event.'''
return Key(event.GetKeyCode(), event.CmdDown(),
event.AltDown(), event.ShiftDown())
def __hash__(self):
return hash(tuple(sorted(tuple(vars(self)))))
def __eq__(self, other):
if not isinstance(other, Key):
return NotImplemented
return self.key_code == other.key_code and \
self.cmd == other.cmd and \
self.shift == other.shift and \
self.alt == other.alt
from wx_tools import Key
class MyApp(wx.App):
def __init_key_handlers(self):
'''Initialize key shortcuts.'''
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
# Now you define handlers for various keys:
def bypass_key():
print 'key bypassed'
# This is the big dict that maps keys to their handlers:
self.key_handlers = {
Key(wx.WXK_ESCAPE): bypass_key,
Key(wx.WXK_DELETE): bypass_key,
}
def init_frame(self):
self.res = xrc.XmlResource('login.xrc')
self.frame = self.res.LoadFrame(None, 'mainFrame')
# bind key event
self.__init_key_handlers()
self.frame.Show()
def OnKeyDown(self, event):
'''wx.EVT_KEY_DOWN handler.'''
key = Key.get_from_key_event(event)
handler = self.key_handlers.get(key, None)
if handler:
handler()
else:
event.Skip()
class MyApp(wx.App):
def init_frame(self):
self.res = xrc.XmlResource('login.xrc')
self.frame = self.res.LoadFrame(None, 'mainFrame')
# 在此 frame 下監聽所有按鍵反應
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
# 或綁定單一原件
wx.EVT_KEY_DOWN(xrc.XRCCTRL(self.frame, 'userTxt'), self.OnKeyDown)
self.frame.Show()
def OnKeyDown(self, e):
key = e.GetKeyCode()
if key == wx.WXK_ESCAPE:
print 'Event!'
else:
e.Skip()