from
PyQt5.QtWidgets
import
*
import
sys
import
numpy as np
import
pyqtgraph as pg
from
PyQt5.QtGui
import
*
from
PyQt5.QtCore
import
*
import
pyqtgraph.ptime as ptime
class
ImageView(pg.ImageView):
def
__init__(
self
,
*
args,
*
*
kwargs):
pg.ImageView.__init__(
self
,
*
args,
*
*
kwargs)
class
Window(QMainWindow):
def
__init__(
self
):
super
().__init__()
self
.setWindowTitle(
"PyQtGraph"
)
self
.setGeometry(
100
,
100
,
600
,
500
)
icon
=
QIcon(
"skin.png"
)
self
.setWindowIcon(icon)
self
.UiComponents()
self
.show()
def
UiComponents(
self
):
widget
=
QWidget()
label
=
QLabel(
"Geeksforgeeks Video"
)
label.setMinimumWidth(
130
)
label.setWordWrap(
True
)
pg.setConfigOptions(antialias
=
True
)
win
=
pg.GraphicsLayoutWidget()
view
=
win.addViewBox()
view.setAspectLocked(
True
)
self
.img
=
pg.ImageItem(border
=
'w'
)
view.addItem(
self
.img)
view.setRange(QRectF(
0
,
0
,
600
,
600
))
self
.data
=
np.random.normal(size
=
(
15
,
600
,
600
),
loc
=
1024
, scale
=
64
).astype(np.uint16)
self
.i
=
0
self
.updateTime
=
ptime.time()
self
.fps
=
0
def
updateData():
self
.img.setImage(
self
.data[
self
.i])
self
.i
=
(
self
.i
+
1
)
%
self
.data.shape[
0
]
QTimer.singleShot(
1
, updateData)
now
=
ptime.time()
fps2
=
1.0
/
(now
-
self
.updateTime)
self
.updateTime
=
now
self
.fps
=
self
.fps
*
0.9
+
fps2
*
0.1
updateData()
layout
=
QGridLayout()
label.setMinimumWidth(
130
)
widget.setLayout(layout)
layout.addWidget(label,
1
,
0
)
layout.addWidget(win,
0
,
1
,
3
,
1
)
self
.setCentralWidget(widget)
App
=
QApplication(sys.argv)
window
=
Window()
sys.exit(App.
exec
())