2017-07-14 153 views
0

由於PyQtGraph的0.10.0版我在圖中有TextItems的問題: 我有一個啓用自動縮放的圖(PlotItem)和一個TextItem。在某些情況下,自動縮放會嘗試縮放不可伸縮的TextItem。圖表一次又一次重新調整。 這種情況發生時:PyQtGraph 0.10.0:PlotItem的自動範圍嘗試縮放TextItem並崩潰

  1. 繪製的曲線沒有高度或
  2. 窗口的高度將降低,直到文本不適合了。

對於我的觀點,PyQtGraph 0.9.10版本中沒有這個問題。

示例情況1:

import PySide 
from pyqtgraph.Qt import QtGui, QtCore 
import numpy as np 
import pyqtgraph as pg 

app = QtGui.QApplication([]) 

win = pg.GraphicsWindow(title="auto scaling bug when having a TextItem") 
win.resize(1000,500) 
win.setWindowTitle("auto scaling bug when having a TextItem") 

p1 = win.addPlot(title="Plot with TextItem", y=np.zeros(10)) 
#p1.plot(y=[100]*10) 
ti = pg.TextItem(text="My TextItem", color='r', anchor=(0.0, 1.0), angle=90) 
p1.addItem(ti) 
ti.setPos(0, 0) 
p1.enableAutoRange('y', True) 

## Start Qt event loop unless running in interactive mode or using pyside. 
if __name__ == '__main__': 
    import sys 
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): 
     QtGui.QApplication.instance().exec_() 

示例情況2:

import PySide 
from pyqtgraph.Qt import QtGui, QtCore 
import numpy as np 
import pyqtgraph as pg 

app = QtGui.QApplication([]) 

win = pg.GraphicsWindow(title="auto scaling bug when having a TextItem") 
win.resize(1000,150) 
win.setWindowTitle("auto scaling bug when having a TextItem") 

p1 = win.addPlot(title="Plot with TextItem", y=np.zeros(10)) 
p1.plot(y=[100]*10) 
ti = pg.TextItem(text="My TextItem", color='r', anchor=(0.0, 1.0), angle=90) 
p1.addItem(ti) 
ti.setPos(0, 0) 
p1.enableAutoRange('y', True) 

## Start Qt event loop unless running in interactive mode or using pyside. 
if __name__ == '__main__': 
    import sys 
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): 
     QtGui.QApplication.instance().exec_() 

有沒有人的想法(除了要回0.9.10版)? 提前謝謝!

回答

0

哦,我自己找到了一個解決方案: addItem方法允許選項ignoreBounds。當我加入TextItem與此選項設置爲True然後自動縮放的工作原理:

p1.addItem(ti, ignoreBounds = True) 

對不起,問調試之前。