MainWnd.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. splitter= self.split_()
  16. self.setCentralWidget(splitter)
  17. #窗口基础属性
  18. def basic(self):
  19. #设置标题,大小,图标
  20. self.setWindowTitle("RPC3DView")
  21. self.resize(490*2+300, 370*2)
  22. #self.setWindowIcon(QIcon("./image/Gt.png"))
  23. #居中显示
  24. screen = QDesktopWidget().geometry()
  25. self_size = self.geometry()
  26. self.move(int((screen.width() - self_size.width())/2),int((screen.height() - self_size.height())/2))
  27. def closeEvent(self, QCloseEvent):
  28. self.Controller.close()
  29. self.viewerFrame.close()
  30. #分割窗口
  31. def split_(self):
  32. splitter = QSplitter(Qt.Horizontal)
  33. splitter.addWidget(self.viewerFrame)
  34. splitter.addWidget(self.Controller)
  35. splitter.setStretchFactor(0,3)
  36. splitter.setStretchFactor(1,1)
  37. return splitter
  38. def OnImagesHandle(self,images:pb.ResImage):
  39. self.viewerFrame.DisplayImage(images)
  40. def OnCloudHandle(self,clouds:pb.ResCloud):
  41. self.viewerFrame.DisplayCloud(clouds)
  42. def OnMeasureDataHandle(self,measure:pb.MeasureInfo):
  43. self.Controller.DisplayMeasureInfo(measure)