def __init__(self): QtGui.QMainWindow.__init__(self) self.setupUi(self) self.cloud = pcl.PointCloud() #添加软件图标 icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap("./logo.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) QtGui.QMainWindow.setWindowIcon(self, icon) # self.widget_2.resize(759, 486) self.graph3DWidget = Surface3D_Graph(defaultNumberOfData, self.widget_3dscan) self.graph3DWidget.setMinimumSize(QtCore.QSize(600, 600)) self.graph3DWidget.setObjectName("graph3DWidget") self.cloud = self.graph3DWidget.get_cloud() self.zoom_home.pressed.connect(lambda:self.graph3DWidget.home_view()) self.zoom_left.pressed.connect(lambda:self.graph3DWidget.home_view('left')) self.zoom_right.pressed.connect(lambda:self.graph3DWidget.home_view('right')) self.zoom_up.pressed.connect(lambda:self.graph3DWidget.home_view('up')) self.zoom_down.pressed.connect(lambda:self.graph3DWidget.home_view('down')) self.zoom_in.pressed.connect(lambda:self.graph3DWidget.home_view('in')) self.zoom_out.pressed.connect(lambda:self.graph3DWidget.home_view('out')) self.get_color.pressed.connect(lambda:self.openColorDialog()) self.timer = QtCore.QBasicTimer() self.step = 0 self.start_scan.pressed.connect(self.onStart) self.actionOpen.triggered.connect(lambda:self.open_file()) self.actionSave.triggered.connect(lambda:self.saveFileDialog()) self.onInit() self.getThread = ThreadExample() self.getThread.printSignal.connect(self.modbusCallback) self.getThread.start() png = QtGui.QPixmap('resut.png') self.cam_image.setPixmap(png.scaled(250,250,aspectRatioMode=QtCore.Qt.KeepAspectRatio)) self.ptz =ptz() self.comboBox_serial.addItems(self.ptz.get_port_list()) self.connect.pressed.connect(lambda:self.connect_serial()) self.ptz_up.pressed.connect(lambda: self.ptz_go("up")) self.ptz_up.released.connect(lambda: self.ptz_go("stop")) self.ptz_down.pressed.connect(lambda: self.ptz_go("down")) self.ptz_down.released.connect(lambda: self.ptz_go("stop")) self.ptz_left.pressed.connect(lambda: self.ptz_go("left")) self.ptz_left.released.connect(lambda: self.ptz_go("stop")) self.ptz_right.pressed.connect(lambda: self.ptz_go("right")) self.ptz_right.released.connect(lambda: self.ptz_go("stop")) self.ptz_go_zeto.pressed.connect(lambda: self.ptz_go("zero")) self.manual_recognize.pressed.connect(self.cloudRecognize) self.recognize = Queue() self.scan_queue = Queue() self.scan_status = 1
def initUI(self): #self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Taper Design') okButton = QtGui.QPushButton("Validate") okButton.clicked.connect(self.okClicked) cancelButton = QtGui.QPushButton("Initiate") cancelButton.clicked.connect(self.InitiateClicked) taperButton = QtGui.QPushButton("Taper") taperButton.clicked.connect(self.taperClicked) abortButton = QtGui.QPushButton("Abort") abortButton.clicked.connect(self.abortClicked) measureButton = QtGui.QPushButton("Measure") measureButton.clicked.connect(self.measureClicked) HomeThetaButton = QtGui.QPushButton("ThetaReset") HomeThetaButton.clicked.connect(self.HomeThetaButtonClicked) MoveThetaButton = QtGui.QPushButton("ThetaMOVE") MoveThetaButton.clicked.connect(self.MoveThetaButtonClicked) BDButton = QtGui.QPushButton("Bright") BDButton.clicked.connect(self.BD) self.exposure = QtGui.QLineEdit(self) self.exposure.setText('200') #stopSplicerWithoutStageReset(self) hbox = QtGui.QHBoxLayout() hbox.addStretch(1) hbox.addWidget(self.exposure) hbox.addWidget(BDButton) hbox.addWidget(MoveThetaButton) MoveThetaButton = QtGui.QPushButton("TL") MoveThetaButton.clicked.connect(self.MoveThetaLClicked) hbox.addWidget(MoveThetaButton) MoveThetaButton = QtGui.QPushButton("TR") MoveThetaButton.clicked.connect(self.MoveThetaRClicked) hbox.addWidget(MoveThetaButton) StopSplicer = QtGui.QPushButton("STOPSPLICE") StopSplicer.clicked.connect(self.StopSpliceClicked) hbox.addWidget(StopSplicer) hbox.addWidget(HomeThetaButton) hbox.addWidget(okButton) hbox.addWidget(cancelButton) hbox.addWidget(taperButton) hbox.addWidget(measureButton) hbox.addWidget(abortButton) button = QtGui.QPushButton("ExecuteCMDs") button.clicked.connect(self.RunCMDs) hbox.addWidget(button) vbox = QtGui.QVBoxLayout() hbox2 = QtGui.QHBoxLayout() #params = [ScalableGroup(name="Taper Structure", children=[]) ] #t = ParameterTree(showHeader=False) #t.setDragEnabled(True) self.text = SimplePythonEditor(self) #self.text.setAcceptRichText(True) #self.text.setTabStopWidth(10) self.text.setText(""" #Taper Functions SD = 1680 #Start Diameter ED = 1490 #end Diameter Waist = 1000. taper.startArc = 530. taper.waistAdd = 0. taper.vr= 0.05 taper += linear(3000,SD,Waist) taper += linear(3000,Waist,Waist) taper += linear(2000,Waist,ED) taper += linear(25000,ED,ED) taper += parabolic(4000,ED,SD)""") vbox1 = QtGui.QVBoxLayout() vbox1.addWidget(self.text) self.runcmds = SimplePythonEditor(self) self.runcmds.setText("""'''Instructions arc(duration in ms, bit between 0 and 1024) moveZLZR(ZL distance in micron 0.1 to,ZL speed,ZR distance in micron, ZR Speed) zoomin() zoomout() '''""") vbox1.addWidget(self.runcmds) hbox3 = QtGui.QHBoxLayout() self.doArc = QtGui.QCheckBox('Arc', self) self.doRotate = QtGui.QCheckBox('Rotate', self) self.controlSplicer = QtGui.QCheckBox('Control Splicer', self) hbox3.addWidget(self.doArc) hbox3.addWidget(self.doRotate) hbox3.addWidget(self.controlSplicer) vbox1.addLayout(hbox3) hbox2.addLayout(vbox1) vboxPlots = QtGui.QVBoxLayout() p1 = pg.PlotWidget(self, title='Taper Profile', xlabel='xl ($\mu$m)') p1.setLabel('left', "OD", units='micron') p1.setLabel('bottom', "ZL", units='micron') self.p1 = p1 self.y = p1.plot() self.measureX = p1.plot(pen=(0, 255, 0)) self.measureY = p1.plot(pen=(0, 0, 255)) self.arc = p1.plot(pen=(255, 0, 0)) self.brightprofileWindow = pg.PlotWidget(title='Brightness Profile') self.brightprofileWindow.show() self.brightprofile = self.brightprofileWindow.plot() vboxPlots.addWidget(p1, stretch=.8) p2 = pg.PlotWidget(self, title='Motor Velocity') p2.setLabel('left', "Velocity", units='mm/s') p2.setLabel('bottom', "Time", units='s') self.p2 = p2 self.vl = p2.plot() self.vr = p2.plot(pen=(255, 0, 0)) vboxPlots.addWidget(p2, stretch=.8) p3 = pg.PlotWidget(self, title='xl,xr') self.p3 = p3 self.xl = p3.plot() self.xr = p3.plot(pen=(255, 0, 0)) self.xlp = p3.plot(pen=None, symbolBrush=(255, 0, 0), symbolPen='w') #self.xrp = p3.plot(np.random.normal(size=1), pen=None, symbolBrush=(255,0,0), symbolPen='w') p3.setLabel('left', "XR", units='micron') p3.setLabel('bottom', "XL", units='MICRON') vboxPlots.addWidget(p3, stretch=.8) hbox2.addLayout(vboxPlots) vbox.addLayout(hbox2) #vbox.addStretch(1) vbox.addLayout(hbox) #self.setLayout(vbox) self.main_widget = QtGui.QWidget(self) self.main_widget.setLayout(vbox) self.setCentralWidget(self.main_widget) self.timer = QtCore.QBasicTimer() self.timer.start( 1, self) #check stuff every 130 ms, update stage every 150ms self.statusBar().showMessage("System Status | Normal") self.show() self.mtwidget = MoveMotorWidget(splicer) self.fps = 0 self.previoustime = time.time() self.started = False self.ex = '' self.processClass = SplicerFunc() self.Measurement = None self.taperProcess = None