forked from davidgrier/pyfab
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjansen.py
54 lines (44 loc) · 1.55 KB
/
jansen.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
"""jansen.py: GUI for holographic video microscopy."""
from pyqtgraph.Qt import QtGui
from QFabGraphicsView import QFabGraphicsView
from QFabDVR import QFabDVR
from QFabVideo import QFabVideo
from QFabFilter import QFabFilter
import sys
class jansen(QtGui.QWidget):
def __init__(self):
super(jansen, self).__init__()
self.init_hardware()
self.init_ui()
def init_hardware(self):
# video screen
screen_size = (640, 480)
self.fabscreen = QFabGraphicsView(
size=screen_size, gray=True, mirrored=False)
# DVR
self.dvr = QFabDVR(source=self.fabscreen.video)
def init_ui(self):
layout = QtGui.QHBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
layout.setSpacing(1)
layout.addWidget(self.fabscreen)
wcontrols = QtGui.QWidget()
controls = QtGui.QVBoxLayout()
controls.setSpacing(1)
controls.setSizeConstraint(QtGui.QLayout.SetFixedSize)
controls.addWidget(self.dvr)
self.wvideo = QFabVideo(self.fabscreen.video)
controls.addWidget(self.wvideo)
controls.addWidget(QFabFilter(self.fabscreen.video))
wcontrols.setLayout(controls)
layout.addWidget(wcontrols)
self.setLayout(layout)
self.show()
self.dvr.recording.connect(self.handleRecording)
def handleRecording(self, recording):
self.wvideo.enabled = not recording
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
instrument = jansen()
sys.exit(app.exec_())