def on_actionopen(self): # 选择签到的班级,先通过函数获取到已经存在的班级 list = self.getlist() # 返回值是一个元组,只需要第一个值,设置输入框的默认值是"class1" group, ret = QInputDialog.getText( self, "选择签到班级", "请选择如下班级进行签到:\n" + str(list['result']['group_id_list']), QLineEdit.Normal, "class1") # 启动摄像头 self.cameravideo = camera() # 创建摄像头这个类 # 互斥信号量 self.camera_status = True # 启动定时器,进行定时,每隔10ms进行一次获取摄像头数据进行显示 # timeshow定时器用作显示画面 self.timeshow = QTimer(self) self.timeshow.start(10) # 10ms后定时器启动,产生一个timeout信号,.connect()关联槽函数 self.timeshow.timeout.connect(self.show_cameradata) # 启动检测线程,解决卡顿问题 self.create_thread(group) # facedetecttime定时器设置检测画面获取 # 当打开摄像头时,创建定时器500ms,用于获取检测的画面 self.facedetecttime = QTimer(self) self.facedetecttime.start(500) self.facedetecttime.timeout.connect(self.get_cameradata) # 关联检测人脸信息函数 # 通过信号将画面传给线程,每500ms传一次信号,调用线程的get_base64函数,将画面传给线程 self.detect_data_signal.connect(self.detectThread.get_base64) # 线程关联槽函数,从线程中获取到检测的结果,并关联槽函数get_cetectdata用于在界面上显示画面 self.detectThread.transmit_data.connect(self.get_detectdata) # 线程里面人脸搜索返回的结果关联槽函数 self.detectThread.search_data.connect(self.get_search_data)
def on_actionopen(self): #启动摄像头 self.cameravideo = camera() #启动定时器,进行定时,每个多长时间进行一次获取摄像头数据进行显示 self.timeshow = QTimer(self) self.timeshow.start(10) #10ms的定时器启动,每到10ms就会产生一个信号timeout,信号没有() self.timeshow.timeout.connect(self.show_cameradata)
def open_camera(self): # 创建摄像头对象,不能少 self.cameravideo = camera() # 让摄像头自适应 self.label.setScaledContents(True) # 用到定时器 0ms启动一次 self.time = QTimer() self.time.timeout.connect(self.show_cameradata) self.time.start(50)
def open_camera(self): # 创建摄像头对象,不能少 self.cameravideo = camera() # 让摄像头自适应 self.label.setScaledContents(True) #用到定时器 0ms启动一次 self.time = QTimer() self.time.timeout.connect(self.show_cameradata) self.time.start(50) #让按钮变成灰色 #self.pushButton_6.setEnabled(False) #让抓拍按钮恢复使用 self.pushButton.setEnabled(True) self.pushButton_6.setEnabled(False) self.status = True