PYQT设计完成,如何用python检测事件?

Python015

PYQT设计完成,如何用python检测事件?,第1张

答: 可以将事件连接到槽函数,然后在槽函数里面设置相关内容。这样的话每次事件触发时,槽函数里面的内容就可以执行,根据内容也就可以判断知道哪个事件被触发了。信号绑定槽函数的方法有如下所示。

就比如说你要捕获按钮的点击事件(clicked),当按钮(定义为btn)被点击后,我们调用一个on_click函数(这是我们自己定义的),那么最后的代码就是这样btn.clicked.connect(on_click),就可以把按钮的点击事件与槽函数相连。

Python有一个内置的库 matplotlib,它提供了图形界面(GUI)的功能,允许用户直接在图形上点击并获取鼠标位置。

下面是一个简单的例子,展示了如何使用 matplotlib 库获取鼠标点击事件并返回三维坐标:

Copy code# 首先,导入 matplotlib 库import matplotlib.pyplot as plt# 定义图像窗口fig = plt.figure()# 获取当前坐标系ax = fig.add_subplot(111, projection='3d')# 在图像窗口中添加事件监听器,用于监听鼠标点击事件def onclick(event):# 获取鼠标点击时的坐标

x, y, z = event.xdata, event.ydata, event.zdataprint('x={}, y={}, z={}'.format(x, y, z))# 将事件监听器绑定到当前坐标系cid = fig.canvas.mpl_connect('button_press_event', onclick)# 显示图像窗口plt.show()

如果你运行上面的代码,它会打开一个三维坐标系的图形窗口,当你在图形窗口中点击时,会在控制台中输出鼠标点击的三维坐标。

注意:如果你没有安装 matplotlib 库,可以使用 'pip install matplotlib

linux下好办,所有的设备都当作文件处理了,在『/dev/input』目录下找到鼠标对应设备文件读出来即可。

鼠标设备文件是『/dev/input/mice』,读3个字节,三个字节的值分别是『Button类型』,『X的相对位移』,『Y的相对位移』。取Button的低3位(Button &0x07)。 0x01 ->LeftButtonDown, 0x02 ->RightButtonDown.

import struct

mou = open( "/dev/input/mice", "rb" )

def m_event():

m = mou.read(3)

b = ord( m[0] )

bl = b &0x1

bm = ( b &0x4 ) >0

br = ( b &0x2 ) >0

x,y = struct.unpack( "bb", m[1:] )

print "Left:%d, Middle: %d, Right: %d, x: %d, y: %d\n" % (bl,bm,br, x, y)

while( 1 ):

m_event()

mou.close()