PyQt variable Framefarben in einen Grid
Verfasst: Dienstag 29. Oktober 2019, 17:12
Guten Tag,
ich habe ein Grid aus Frames welche die Farben ändern sollen durch den Input von Variablen (Mittelwert von Pixelwerten eines Videocaptures).
Also wenn sich die Pixel in einen bereich ändern sollen sich die Farbe eines Frames ändern.
Das Funktionier auch soweit für einzelne Frames (ohne Grid).
Meine Frage ist jetzt wie ich auf die im Grid erstellen Frames einzeln "zugreife".
Und vielleicht noch wie ich einen Pushbutton außerhalb des Grids erstelle der ist im Moment immer dahinter oder verändert die Größe einer Zeile.
Die Kommentierte Zeile ist die nicht funktionierende.
"#frames.setStyleSheet("QWidget { background-color: %s}" % CL1.name())"
Vielen Dank im Voraus für die Hilfe.
ich habe ein Grid aus Frames welche die Farben ändern sollen durch den Input von Variablen (Mittelwert von Pixelwerten eines Videocaptures).
Also wenn sich die Pixel in einen bereich ändern sollen sich die Farbe eines Frames ändern.
Das Funktionier auch soweit für einzelne Frames (ohne Grid).
Meine Frage ist jetzt wie ich auf die im Grid erstellen Frames einzeln "zugreife".
Und vielleicht noch wie ich einen Pushbutton außerhalb des Grids erstelle der ist im Moment immer dahinter oder verändert die Größe einer Zeile.
Die Kommentierte Zeile ist die nicht funktionierende.
"#frames.setStyleSheet("QWidget { background-color: %s}" % CL1.name())"
Vielen Dank im Voraus für die Hilfe.
Code: Alles auswählen
import sys
import cv2
import numpy as np
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QFrame, QPushButton
from PyQt5.QtGui import QColor
class Window(QWidget):
def __init__(self):
super().__init__()
self.button = QPushButton("START", self)
self.button.move(200, 200)
self.button.clicked.connect(self.VideoCaptcher)
red = 130
CL1 = QColor(red, 0, 0)
grid = QGridLayout()
self.setGeometry(350, 350, 500, 500)
for i in range(12):
for j in range(12):
frames = QFrame(self)
frames.setStyleSheet("QWidget { background-color: %s}" % CL1.name())
grid.addWidget(frames, j, i)
self.setLayout(grid)
def VideoCaptcher(self):
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_BRIGHTNESS, 0.5)
cap.set(cv2.CAP_PROP_CONTRAST, 0.5)
cap.set(cv2.CAP_PROP_FPS, 10)
cap.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0.25)
cap.set(cv2.CAP_PROP_EXPOSURE, 0.0002)
cap.set(3, 320)
cap.set(4, 240)
while True:
_, faser = cap.read()
L1 = (faser[97:104, 85:92].mean())
CL1 = QColor(L1, 0, 0)
#frames.setStyleSheet("QWidget { background-color: %s}" % CL1.name())
print (L1)
cv2.imshow('FASER', faser)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
App = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(App.exec())