【问题标题】:PySide's QTest not checking boxPySide 的 QTest 没有复选框
【发布时间】:2013-10-25 10:27:25
【问题描述】:

这是我的代码:

from PySide import QtCore, QtGui, QtTest
import sys

application = QtGui.QApplication(sys.argv)
checkbox = QtGui.QCheckBox()
assert not checkbox.isChecked()
QtTest.QTest.mouseClick(checkbox, QtCore.Qt.LeftButton)
assert checkbox.isChecked()

我希望在模拟鼠标点击后复选框被选中。但事实并非如此。我在 Mac OS X、Python 2.7 上安装了新的 brew PySide。

【问题讨论】:

  • 我无法在 linux 机器上重现这个。
  • 可以在 Windows 8、Python 2.7、PySide 1.1.2 上重现这个

标签: python macos qt pyside


【解决方案1】:

我遇到了同样的问题。在我的情况下,默认点击位置不正确。文档说明默认位置是小部件的中心。

>>> print checkbox.rect()
PySide.QtCore.QRect(0,0,640,480)

所有其他示例都使用可以设置为任意大小的按钮,因此它将填满整个可用空间。但是,无法调整复选框的大小。 由于我实际上看不到复选框,我假设它水平在左侧,垂直在中间。

>>> QTest.mouseClick(checkbox, QtCore.Qt.LeftButton, pos=QtCore.QPoint(2,checkbox.height()/2)
>>> print checkbox.isChecked()
True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多