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