1

我正在使用squishtest库从我的 Python 代码中操作 Qt 应用程序并尝试使用事件处理程序,如下所示:

import squishtest


def handle_mouse_event(event):
    print 'Clicked!'


squishtest.startApplication('application')
squishtest.installEventHandler('QMouseEvent', handle_mouse_event)

不幸的是,这不起作用,即单击应用程序内的元素时没有任何反应,但是如果我在 Squish 运行时中的 Squish IDE 中运行等效于此代码的情况下,它会起作用:

import squish


def handle_mouse_event(event):
    print 'Clicked!'


squish.startApplication('application')
squish.installEventHandler('QMouseEvent', handle_mouse_event)

有什么区别以及如何让事件处理程序使用squishtest

Python 2.7.14、Squish 6.3.1、Ubuntu 16.04

4

1 回答 1

0

(按照原始海报的建议重新发布为答案。)

这适用于我在带有 Squish 6.3.x+ 的 Linux 和 Windows 上,使用 Squish 包中的 Python 安装 - 但不可否认,我在脚本末尾添加了一个 snooze(5) 以便有一些时间“鼠标四处走动”应用程序的窗口,那么即使是基于鼠标移动的事件也会触发事件处理函数的执行。

使用 snooze() 的另一个副作用是事件循环一直在旋转,而使用 time.sleep() (您稍后提到之前使用过)时情况并非如此。

如果它仍然不适合你,我建议联系 froglogic Squish 的技术支持。

于 2018-03-08T11:40:07.707 回答