Pyqtgraph的ImageView不会发出“时间改变”信号

时间:2015-09-15 12:30:17

标签: python pyqt pyqtgraph

考虑这个最小的例子,其目标是显示pyqtgraph的ImageView的当前“时间索引”:

import pyqtgraph as pg
import numpy as np

pg.mkQApp()
view = pg.ImageView()
view.setImage(np.random.normal(size=(100,100,100)))
view.show()

def indexChanged():
    print view.currentIndex

view.sigTimeChanged.connect(indexChanged)

只要用鼠标改变时间,这就行得很好。使用键盘箭头更改时间时,似乎不会发出sigTimeChanged?或者我错过了什么?

有什么建议可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

嗯...我潜入了源代码并做了一些补丁(实际上,只重新排序了这些语句):

class PatchedImageView(pg.ImageView):
    def timeLineChanged(self):
        (ind, time) = self.timeIndex(self.timeLine)
        self.sigTimeChanged.emit(ind, time)
        if self.ignoreTimeLine:
            return
        self.play(0)
        if ind != self.currentIndex:
            self.currentIndex = ind
            self.updateImage()

它似乎有效,但我不确定我是否有任何破坏。