wxpython库目录下,会找到很多其它部件、功能增强或扩展,这里介绍下鼠标手势Mouse Gestures。
wxPython中,鼠标手势是通过 wx.lib.gestures.MouseGestures 类来创建的。
专题教程:wxpython中文教程
可用的手势有:
L – 左向
R – 右向
U – 上向
D – 下向
7 – 西北向
9 – 东北向
1 – 西南向
3 – 东南向
想知道为何选用这些数字,就看看数字键盘吧.
鼠标手势可以联合使用. 当我们用鼠标指针画出一个矩形时,激发出“RDLU”鼠标手势.
鼠标手势有以下标志:
wx.MOUSE_BTN_LEFT
wx.MOUSE_BTN_MIDDLE
wx.MOUSE_BTN_RIGHT
例子:
#!/usr/bin/python
#coding=utf-8
#mousegestures.py
import wx
import wx.lib.gestures as gest
class MyMouseGestures(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title,
size=(600, 500))
panel = wx.Panel(self, -1)
mg = gest.MouseGestures(panel, True,
wx.MOUSE_BTN_LEFT)
mg.SetGesturePen(wx.Color(255, 0, 0), 10)
mg.SetGesturesVisible(True)
mg.AddGesture('DR', self.OnDownRight)
def OnDownRight(self):
self.Close()
class MyApp(wx.App):
def OnInit(self):
frame = MyMouseGestures(None, -1,
'mousegestures.py')
frame.Show(True)
frame.Center()
return True
app = MyApp(0)
app.MainLoop()
本例中,为面板注册了一个鼠标手势.
当鼠标左键按下并向下向右移动光标,绘制出一个“L”时,鼠标手势触发. 我们的鼠标手势将会关闭程序。
假如,想要使用鼠标手势,就务必要创建一个 MouseGesture 对象。
其构建器的第一个参数是一个窗口(注意,此“窗口”可以是窗口内的任意部件),鼠标手势注册于该窗口内。
第二个参数“True”表示自动,相应的“False”表示手动。
而手动方式在 wxPython 中尚未完全实现,并且也乐于使用自动方式。
最后一个参数定义了一个鼠标按键,激发手势时需要按下这个按键. 同时该按键还可以在稍候有 SetMouseButton() 方法予以修改。
手势会以红色线条绘制出来. 线条宽度为2像素。
而通过 SetGestureVisible() 方法,设置手势可见。
注册一个手势是通过 AddGesture() 方法完成的。
该方法的第一个参数就是手势,第二个参数指定由该手势激发的方法。