MainWnd.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import math
  2. import time
  3. import sys
  4. from PyQt5.QtGui import *
  5. from PyQt5.QtWidgets import *
  6. from PyQt5.QtCore import *
  7. from CustomFrame import *
  8. class MainWindow(QMainWindow):
  9. """docstring for Mainwindow"""
  10. def __init__(self, parent = None):
  11. super(MainWindow,self).__init__(parent)
  12. self.basic()
  13. self.Controller = ControlFrame()
  14. self.viewerFrame = ViewerFrame(self.Controller.OnAction)
  15. self.Controller.btnSaveAllCloud.clicked.connect(self.saveAllCloud)
  16. splitter= self.split_()
  17. self.setCentralWidget(splitter)
  18. def saveAllCloud(self):
  19. fileName2, ok2 = QFileDialog.getSaveFileName(self, "文件保存", "C:/","All Files (*);;Text Files (*.txt)")
  20. print(fileName2 ,ok2)
  21. with open(fileName2,"w+") as f:
  22. for point in self.viewerFrame.pcViewer1.pointCloud:
  23. prob=point[3]
  24. 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)))
  25. for point in self.viewerFrame.pcViewer2.pointCloud:
  26. prob=point[3]
  27. 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)))
  28. for point in self.viewerFrame.pcViewer3.pointCloud:
  29. prob=point[3]
  30. 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)))
  31. for point in self.viewerFrame.pcViewer4.pointCloud:
  32. prob=point[3]
  33. 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)))
  34. #窗口基础属性
  35. def basic(self):
  36. #设置标题,大小,图标
  37. self.setWindowTitle("RPC3DView")
  38. self.resize(490*2+300, 370*2)
  39. #self.setWindowIcon(QIcon("./image/Gt.png"))
  40. #居中显示
  41. screen = QDesktopWidget().geometry()
  42. self_size = self.geometry()
  43. self.move(int((screen.width() - self_size.width())/2),int((screen.height() - self_size.height())/2))
  44. def closeEvent(self, QCloseEvent):
  45. self.Controller.close()
  46. self.viewerFrame.close()
  47. #分割窗口
  48. def split_(self):
  49. splitter = QSplitter(Qt.Horizontal)
  50. splitter.addWidget(self.viewerFrame)
  51. splitter.addWidget(self.Controller)
  52. splitter.setStretchFactor(0,3)
  53. splitter.setStretchFactor(1,1)
  54. return splitter
  55. def OnImagesHandle(self,images:pb.ResImage):
  56. self.viewerFrame.DisplayImage(images)
  57. self.Controller.OnImages(images)
  58. def OnCloudHandle(self,clouds:pb.ResCloud):
  59. self.viewerFrame.DisplayCloud(clouds)
  60. def OnMeasureDataHandle(self,measure:pb.MeasureInfo):
  61. self.Controller.DisplayMeasureInfo(measure)