-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfileviewer.py
More file actions
89 lines (74 loc) · 3.66 KB
/
Copy pathfileviewer.py
File metadata and controls
89 lines (74 loc) · 3.66 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python
from PyQt5.QtCore import QDir, Qt, pyqtSignal
from PyQt5.QtGui import QImage, QPainter, QPalette, QPixmap
from PyQt5.QtWidgets import (QWidget, QAction, QApplication, QFileDialog, QLabel,
QMainWindow, QMenu, QMessageBox, QScrollArea, QSizePolicy, QSlider, QHBoxLayout, QGraphicsTransform)
from PyQt5.QtPrintSupport import QPrintDialog, QPrinter
import photons_reader
import photon_reader
import QtImageViewer
import ui
class FileViewer(QMainWindow):
layerChanged = pyqtSignal(int)
filereader = None
ui = None
def __init__(self):
super(FileViewer, self).__init__()
self.ui = ui.Ui_MainWindow()
self.ui.setupUi(self)
self.ui.layerSlider.valueChanged.connect(self.setLayer)
self.layerChanged.connect(self.ui.layerSlider.setValue)
self.ui.actionOpen.triggered.connect(self.open)
self.ui.actionAbout.triggered.connect(self.about)
self.ui.actionQuit.triggered.connect(self.close)
def setLayer(self, layerNum):
if layerNum == -1:
image = self.filereader.get_preview_qtimage()
else:
image = self.filereader.get_layer_qtimage(layerNum)
self.ui.graphicsView.setImage(QPixmap.fromImage(image))
return
def populateModelInfo(self):
self.ui.xyPixelSizeEdit.setText(str(self.filereader.getXYPixelSize()))
self.ui.layerThicknessEdit.setText(str(self.filereader.getLayerThickness()))
self.ui.normalExposureEdit.setText(str(self.filereader.getNormalExposureTime()))
self.ui.bottomExposureEdit.setText(str(self.filereader.getBottomExposureTime()))
self.ui.offTimeEdit.setText(str(self.filereader.getOffTime()))
self.ui.bottomLayersEdit.setText(str(self.filereader.getNumBottomLayers()))
self.ui.zLiftDistanceEdit.setText(str(self.filereader.getZLiftDistance()))
self.ui.zLiftSpeedEdit.setText(str(self.filereader.getZLiftSpeed()))
self.ui.zRetractSpeedEdit.setText(str(self.filereader.getZRetractSpeed()))
self.ui.totalVolumeEdit.setText(str(self.filereader.getTotalVolume()))
self.ui.numberLayersEdit.setText(str(self.filereader.getNumLayers()))
self.ui.previewWEdit.setText(str(self.filereader.getPreviewW()))
self.ui.previewHEdit.setText(str(self.filereader.getPreviewH()))
def open(self):
fileName, _ = QFileDialog.getOpenFileName(self, "Open File",
QDir.currentPath())
if fileName:
if fileName.endswith(".photons"):
self.filereader = photons_reader.PhotonSReader(fileName)
elif fileName.endswith(".photon"):
self.filereader = photon_reader.PhotonReader(fileName)
self.filereader.read_data()
image = self.filereader.get_layer_qtimage(0)
# image = self.filereader.get_preview_qtimage()
if image.isNull():
QMessageBox.information(self, "Photon S File Viewer",
"Cannot load %s." % fileName)
return
self.populateModelInfo()
self.ui.graphicsView.setImage(QPixmap.fromImage(image))
self.ui.layerSlider.setRange(-1, self.filereader.num_layers-1)
self.ui.layerSlider.setTickInterval(self.filereader.num_layers/15)
self.ui.layerSlider.setEnabled(True)
def about(self):
QMessageBox.about(self, "About Photon S File Viewer",
"<p>The <b>Photon S File Viewer</b> can parse and display "
".photons files. </p> ")
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
imageViewer = FileViewer()
imageViewer.show()
sys.exit(app.exec_())