-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathTwoLinkedViewersCentralWidget.py
64 lines (49 loc) · 2.1 KB
/
TwoLinkedViewersCentralWidget.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
55
56
57
58
59
60
61
62
63
64
import sys
import vtk
from PySide2 import QtCore, QtWidgets
from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
from ccpi.viewer.QCILRenderWindowInteractor import QCILRenderWindowInteractor
from ccpi.viewer import viewer2D, viewer3D
from ccpi.viewer.QCILViewerWidget import QCILViewerWidget
# Import linking class to join 2D and 3D viewers
import ccpi.viewer.viewerLinker as vlink
from ccpi.viewer.utils import example_data
class TwoLinkedViewersCenterWidget(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self, parent)
#self.resize(800,600)
self.frame1 = QCILViewerWidget(parent,
viewer=viewer2D,
shape=(600, 600),
interactorStyle=vlink.Linked2DInteractorStyle)
self.frame2 = QCILViewerWidget(parent,
viewer=viewer3D,
shape=(600, 600),
interactorStyle=vlink.Linked3DInteractorStyle)
head = example_data.HEAD.get()
self.frame1.viewer.setInputData(head)
self.frame2.viewer.setInputData(head)
# Initially link viewers
self.linkedViewersSetup()
self.link2D3D.enable()
layout = QtWidgets.QBoxLayout(QtWidgets.QBoxLayout.LeftToRight)
layout.addWidget(self.frame1)
layout.addWidget(self.frame2)
cw = QtWidgets.QWidget()
cw.setLayout(layout)
self.setCentralWidget(cw)
self.central_widget = cw
self.show()
def linkedViewersSetup(self):
v2d = self.frame1.viewer
v3d = self.frame2.viewer
self.link2D3D = vlink.ViewerLinker(v2d, v3d)
self.link2D3D.setLinkPan(False)
self.link2D3D.setLinkZoom(False)
self.link2D3D.setLinkWindowLevel(True)
self.link2D3D.setLinkSlice(True)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
#window = MainWindow3()
window = TwoLinkedViewersCenterWidget()
sys.exit(app.exec_())