wxpython中文教程之鼠标手势mouse gestures

发布时间:2020-04-22编辑:脚本学堂
有关wxpython中鼠标手势MOUSE GESTURES的用法,鼠标手势Mouse Gestures可以帮助用户在浏览时节省时间,鼠标手势通过 wx.lib.gestures.MouseGestures 类来创建,一起学习下。

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() 方法予以修改。
 

mg = gest.MouseGestures(panel, True,
      wx.MOUSE_BTN_LEFT)

手势会以红色线条绘制出来. 线条宽度为2像素。
 

mg.SetGesturePen(wx.Color(255, 0, 0), 10)

而通过 SetGestureVisible() 方法,设置手势可见。
 

mg.SetGesturesVisible(True)

注册一个手势是通过 AddGesture() 方法完成的。
该方法的第一个参数就是手势,第二个参数指定由该手势激发的方法。