与pdb一起使用时pyqtgraph怪异

时间:2014-05-24 14:30:07

标签: python pdb pyqtgraph

我很惊讶地发现断点的存在只会改变pyqtgraph对象的行为(python2.7)。

这是一个极小的工作示例:

import pyqtgraph as pg
pg.mkQApp()
pw = pg.PlotWidget()
p1 = pw.plotItem
p1.showAxis('right')
#import pdb; pdb.set_trace()  # Running once with this line, once without
print p1.getAxis('right').rect().width()

运行它:

# No breakpoint:
% python qtg_pdb_bug.py
0.0
# With breakpoint:
% python qtg_pdb_bug.py
> qtg_pdb_bug.py(7)<module>()
-> print p1.getAxis('right').rect().width()
(Pdb) c
35.0

问题:

  1. 出于好奇:在一个导致这种奇怪的断点处停下来会发生什么?这是pyqtgraph中的错误吗?
  2. 哪个是正确/预期的结果? 0或35?

1 个答案:

答案 0 :(得分:1)

我想我明白了。在信号/中断(因此在断点处)时,Qt中必须有自动“事件处理”。

这模仿它:

from pyqtgraph.Qt import QtGui; QtGui.QApplication.processEvents()