我惊讶地发现,仅仅存在一个断点就可以改变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


问题:


出于好奇:在导致这种怪异的断点处停止时会发生什么?这是pyqtgraph中的错误吗?
哪个是正确/预期的结果? 0还是35?

最佳答案

我想我知道了。 Qt在信号/中断(因此在断点)上必须有自动的“事件处理”。

这模拟了它:

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

关于python - pyqtgraph与pdb一起使用时很奇怪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23846139/

10-12 21:00