Pyqtgraph 的 ImageView 不发出 "time changed" 信号

Pyqtgraph's ImageView does not emit "time changed" signal

考虑这个最小的例子,目标是显示 pyqtgraph 的 ImageView 的当前 "time index":

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 ?还是我遗漏了什么?

有什么解决这个问题的建议吗?

嗯...我深入研究了源代码并做了一个小补丁(实际上,只是重新排序了语句):

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()

它似乎有效,但我不确定我没有破坏任何东西。