GeislingerProject/bjoerntest2.py

223 lines
10 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'testbjoern2.ui'
#
# Created by: PyQt5 UI code generator 5.15.11
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1090, 675)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.btn1 = QtWidgets.QPushButton(self.centralwidget)
self.btn1.setGeometry(QtCore.QRect(900, 80, 111, 25))
self.btn1.setObjectName("btn1")
self.AuftragsdetailsTable = QtWidgets.QTableWidget(self.centralwidget)
self.AuftragsdetailsTable.setGeometry(QtCore.QRect(10, 10, 661, 192))
self.AuftragsdetailsTable.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.AuftragsdetailsTable.setObjectName("AuftragsdetailsTable")
self.AuftragsdetailsTable.setColumnCount(5)
self.AuftragsdetailsTable.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.AuftragsdetailsTable.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setPointSize(8)
item.setFont(font)
self.AuftragsdetailsTable.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setPointSize(8)
item.setFont(font)
self.AuftragsdetailsTable.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setPointSize(8)
item.setFont(font)
self.AuftragsdetailsTable.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setPointSize(8)
item.setFont(font)
self.AuftragsdetailsTable.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setPointSize(8)
item.setFont(font)
self.AuftragsdetailsTable.setHorizontalHeaderItem(4, item)
item = QtWidgets.QTableWidgetItem()
self.AuftragsdetailsTable.setItem(0, 0, item)
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(900, 20, 121, 17))
self.label.setObjectName("label")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(860, 40, 221, 31))
self.textEdit.setObjectName("textEdit")
self.bauteilTypBtn = QtWidgets.QPushButton(self.centralwidget)
self.bauteilTypBtn.setGeometry(QtCore.QRect(60, 340, 161, 25))
self.bauteilTypBtn.setObjectName("bauteilTypBtn")
self.bauteiltypTextbox = QtWidgets.QTextEdit(self.centralwidget)
self.bauteiltypTextbox.setGeometry(QtCore.QRect(230, 340, 221, 31))
self.bauteiltypTextbox.setObjectName("bauteiltypTextbox")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(250, 320, 181, 20))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(520, 320, 67, 17))
self.label_4.setObjectName("label_4")
self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_3.setGeometry(QtCore.QRect(460, 340, 191, 31))
self.textEdit_3.setObjectName("textEdit_3")
self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox.setGeometry(QtCore.QRect(70, 410, 151, 23))
self.checkBox.setChecked(False)
self.checkBox.setObjectName("checkBox")
self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)
self.graphicsView.setGeometry(QtCore.QRect(800, 280, 256, 192))
self.graphicsView.setObjectName("graphicsView")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1090, 22))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.btn1.setText(_translate("MainWindow", "load Auftrag"))
item = self.AuftragsdetailsTable.verticalHeaderItem(0)
item.setText(_translate("MainWindow", "T1"))
item = self.AuftragsdetailsTable.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Pos.-Nr"))
item = self.AuftragsdetailsTable.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Matnr mit hoechster Version"))
item = self.AuftragsdetailsTable.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Bezeichnung + Werkstoff"))
item = self.AuftragsdetailsTable.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Menge"))
item = self.AuftragsdetailsTable.horizontalHeaderItem(4)
item.setText(_translate("MainWindow", "Lgort"))
__sortingEnabled = self.AuftragsdetailsTable.isSortingEnabled()
self.AuftragsdetailsTable.setSortingEnabled(False)
item = self.AuftragsdetailsTable.item(0, 0)
item.setText(_translate("MainWindow", "I1"))
self.AuftragsdetailsTable.setSortingEnabled(__sortingEnabled)
self.label.setText(_translate("MainWindow", "Auftragsnummer:"))
self.textEdit.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"hr { height: 1px; border-width: 0; }\n"
"li.unchecked::marker { content: \"\\2610\"; }\n"
"li.checked::marker { content: \"\\2612\"; }\n"
"</style></head><body style=\" font-family:\'Sans Serif\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Ubuntu\'; font-size:11pt;\"><br /></p></body></html>"))
self.bauteilTypBtn.setText(_translate("MainWindow", "Bauteiltype erkennen"))
self.bauteiltypTextbox.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><meta charset=\"utf-8\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"hr { height: 1px; border-width: 0; }\n"
"li.unchecked::marker { content: \"\\2610\"; }\n"
"li.checked::marker { content: \"\\2612\"; }\n"
"</style></head><body style=\" font-family:\'Sans Serif\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:\'Ubuntu\'; font-size:11pt;\"><br /></p></body></html>"))
self.label_3.setText(_translate("MainWindow", "Bezeichnung"))
self.label_4.setText(_translate("MainWindow", "Pos.-Nr:"))
self.checkBox.setText(_translate("MainWindow", "Bauteiltype locked"))
import sys
import cv2
#from PyQt5 import QtCore, QtWidgets, QtGui
class CameraStreamApp(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
# OpenCV video capture (0 for the default camera)
self.cap = None # Initialize capture as None (stream starts on button click)
# Timer for updating the frame
self.timer = QtCore.QTimer(self)
self.timer.timeout.connect(self.update_frame)
def initUI(self):
self.setWindowTitle("Camera Stream")
# Create a QGraphicsView widget
self.graphicsView = QtWidgets.QGraphicsView(self)
self.graphicsView.setGeometry(QtCore.QRect(50, 50, 640, 480))
self.graphicsView.setObjectName("graphicsView")
# Create a QGraphicsScene to hold the frame
self.scene = QtWidgets.QGraphicsScene()
self.graphicsView.setScene(self.scene)
# Create a button to start the camera stream
self.startButton = QtWidgets.QPushButton('Start Camera', self)
self.startButton.setGeometry(QtCore.QRect(50, 550, 120, 40)) # Position the button below the view
self.startButton.clicked.connect(self.start_camera)
# Show the main window
self.setGeometry(100, 100, 800, 600)
self.show()
def start_camera(self):
# Start OpenCV video capture (only if not already started)
if self.cap is None:
self.cap = cv2.VideoCapture(0)
if not self.cap.isOpened():
print("Error: Unable to open the camera.")
return
self.timer.start(30) # Start the timer to update the frame every 30ms (about 33 FPS)
def update_frame(self):
if self.cap:
ret, frame = self.cap.read() # Capture frame from the camera
if ret:
# Convert the frame from BGR (OpenCV format) to RGB
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# Convert the frame to QImage
h, w, ch = frame.shape
bytes_per_line = ch * w
qt_image = QtGui.QImage(frame.data, w, h, bytes_per_line, QtGui.QImage.Format_RGB888)
# Add the QImage to a QPixmap
pixmap = QtGui.QPixmap.fromImage(qt_image)
# Update the scene with the new pixmap
self.scene.clear()
self.scene.addPixmap(pixmap)
def closeEvent(self, event):
# Release the camera when the application is closed
if self.cap is not None:
self.cap.release()
event.accept()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())