Files
school_archives/OSU SARL/Desktop Applications/PnP_Video_Tester/main.py

49 lines
2.0 KiB
Python

import sys
from PyQt4 import QtCore, QtGui, uic
import signal
from VideoCore import PickAndPlateVideo
form_class = uic.loadUiType("form.ui")[0] # Load the UI
#####################################
# PickAndPlateWindow Class Definition
#####################################
class PickAndPlateWindow(QtGui.QMainWindow, form_class):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
# ########## Set up QT Application Window ##########
self.setupUi(self) # Has to be first call in class in order to link gui form objects
# ########## Instantiation of program classes ##########
self.video = PickAndPlateVideo(self)
self.video.requested_image_ready_signal.connect(self.on_image_ready_slot)
self.video.number_embryos_detected_signal.connect(self.on_detected_embryos_number_changed_slot)
def on_image_ready_slot(self):
try:
self.detection_calibration_image_preview_label.setPixmap(
QtGui.QPixmap.fromImage(self.video.settings_and_cal_qimage))
self.video.images_displayed = True
#print "Got here"
except:
print "Failed to show"
def on_detected_embryos_number_changed_slot(self, detected, valid, pickable):
self.detection_num_detected_label.setText(str(detected))
self.detection_valid_detected_label.setText(str(valid))
self.detection_pickable_detected_label.setText(str(pickable))
if __name__ == "__main__":
signal.signal(signal.SIGINT, signal.SIG_DFL) # This allows the keyboard interrupt kill to work properly
app = QtGui.QApplication(sys.argv) # Create the base qt gui application
myWindow = PickAndPlateWindow() # Make a window in this application using the pnp MyWindowClass
myWindow.show() # Show the window in the application
# screenFilter = TouchScreenEventFilter() # Still might be needed if multiple presses from touchscreen breaks stuff
# app.installEventFilter(screenFilter)
app.exec_() # Execute launching of the application