12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import math
- import time
- import sys
- from PyQt5.QtGui import *
- from PyQt5.QtWidgets import *
- from PyQt5.QtCore import *
- from CustomFrame import *
- class MainWindow(QMainWindow):
- """docstring for Mainwindow"""
- def __init__(self, parent = None):
- super(MainWindow,self).__init__(parent)
- self.basic()
- self.Controller = ControlFrame()
- self.viewerFrame = ViewerFrame(self.Controller.OnAction)
- self.Controller.btnSaveAllCloud.clicked.connect(self.saveAllCloud)
- splitter= self.split_()
- self.setCentralWidget(splitter)
- def saveAllCloud(self):
- fileName2, ok2 = QFileDialog.getSaveFileName(self, "文件保存", "C:/","All Files (*);;Text Files (*.txt)")
- print(fileName2 ,ok2)
- with open(fileName2,"w+") as f:
- for point in self.viewerFrame.pcViewer1.pointCloud:
- prob=point[3]
- f.write("%f %f %f %d %d %d\n"%(point[0],point[1],point[2],int(255*prob),int(255-prob*255),255-int(prob*255)))
- for point in self.viewerFrame.pcViewer2.pointCloud:
- prob=point[3]
- f.write("%f %f %f %d %d %d\n"%(point[0],point[1],point[2],int(255*prob),int(255-prob*255),255-int(prob*255)))
- for point in self.viewerFrame.pcViewer3.pointCloud:
- prob=point[3]
- f.write("%f %f %f %d %d %d\n"%(point[0],point[1],point[2],int(255*prob),int(255-prob*255),255-int(prob*255)))
- for point in self.viewerFrame.pcViewer4.pointCloud:
- prob=point[3]
- f.write("%f %f %f %d %d %d\n"%(point[0],point[1],point[2],int(255*prob),int(255-prob*255),255-int(prob*255)))
- #窗口基础属性
- def basic(self):
- #设置标题,大小,图标
- self.setWindowTitle("RPC3DView")
- self.resize(490*2+300, 370*2)
- #self.setWindowIcon(QIcon("./image/Gt.png"))
- #居中显示
- screen = QDesktopWidget().geometry()
- self_size = self.geometry()
- self.move(int((screen.width() - self_size.width())/2),int((screen.height() - self_size.height())/2))
- def closeEvent(self, QCloseEvent):
- self.Controller.close()
- self.viewerFrame.close()
- #分割窗口
- def split_(self):
- splitter = QSplitter(Qt.Horizontal)
- splitter.addWidget(self.viewerFrame)
- splitter.addWidget(self.Controller)
- splitter.setStretchFactor(0,3)
- splitter.setStretchFactor(1,1)
- return splitter
- def OnImagesHandle(self,images:pb.ResImage):
- self.viewerFrame.DisplayImage(images)
- self.Controller.OnImages(images)
- def OnCloudHandle(self,clouds:pb.ResCloud):
- self.viewerFrame.DisplayCloud(clouds)
- def OnMeasureDataHandle(self,measure:pb.MeasureInfo):
- self.Controller.DisplayMeasureInfo(measure)
|