【问题标题】:Using Qt Event Handlers in squishtest在 squishtest 中使用 Qt 事件处理程序
【发布时间】:2018-03-01 17:04:56
【问题描述】:

我正在使用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

【问题讨论】:

  • 这适用于我在 Linux 和 Windows 上使用 Squish 6.3.x+,使用 Squish 包中的 Python 安装 - 但不可否认,我在脚本末尾添加了一个 snooze(5) 有一些是时候在应用程序的窗口上“鼠标移动”了,那么即使是基于鼠标移动的事件也会触发事件处理函数的执行。如果还是不行,建议联系 froglogic Squish 的技术支持。
  • @frog.ca 我首先使用了time.sleep 的无限循环,但现在尝试了snooze,它可以工作。可能睡眠以某种方式阻塞了事件循环。您可以发布您的评论作为答案,因为它可能回答了我的问题。

标签: python qt squish


【解决方案1】:

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

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

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

如果还是不行,建议联系 froglogic Squish 的技术支持。

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多