diff --git a/form.ui b/form.ui index fd6cf81..cad1542 100644 --- a/form.ui +++ b/form.ui @@ -1,18 +1,5 @@ - MainWindow - - - - 0 - 0 - 812 - 666 - - - - SeedQReader - @@ -455,7 +442,6 @@ - diff --git a/requirements.txt b/requirements.txt index 03b3051..c17803c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,10 +3,10 @@ numpy==1.24.3 opencv-python==4.7.0.72 Pillow==9.5.0 pypng==0.20220715.0 -PySide2==5.13.2 PyYAML==6.0 pyzbar==0.1.9 qrcode==7.4.2 -shiboken2==5.13.2 typing_extensions==4.6.2 +PySide6==6.5.1 +shiboken6==6.5.1 urtypes @ git+https://github.com/selfcustody/urtypes.git@7fb280eab3b3563dfc57d2733b0bf5cbc0a96a6a diff --git a/seedqreader.py b/seedqreader.py index d092056..6aa769f 100644 --- a/seedqreader.py +++ b/seedqreader.py @@ -9,11 +9,11 @@ from yaml import load, dump from yaml.loader import SafeLoader as Loader -from PySide2.QtWidgets import QApplication, QMainWindow -from PySide2.QtGui import QImage, QPixmap, QPalette, QColor -from PySide2.QtCore import Qt, QFile, QThread, Signal -from PySide2.QtUiTools import QUiLoader -from PySide2.QtGui import QTextOption +from PySide6.QtWidgets import QApplication, QMainWindow +from PySide6.QtGui import QImage, QPixmap, QPalette, QColor +from PySide6.QtCore import Qt, QFile, QThread, Signal +from PySide6.QtUiTools import QUiLoader +from PySide6.QtGui import QTextOption from PIL import ImageQt @@ -37,6 +37,7 @@ MAX_LEN = 100 QR_DELAY = 400 +FILL_COLOR = "#434343" def to_str(bin_): return bin_.decode('utf-8') @@ -422,7 +423,7 @@ class MainWindow(QMainWindow): stop_display = Signal() def __init__(self): - QMainWindow.__init__(self) + super().__init__() # Set up the main window loader = QUiLoader() @@ -432,8 +433,9 @@ def __init__(self): self.ui = loader.load(ui_file, self) ui_file.close() self.setWindowTitle("SeedQReader") + self.setFixedSize(812,670) - self.ui.show() + self.setCentralWidget(self.ui) self.load_config() @@ -518,7 +520,7 @@ def list_available_cameras(): available_cameras = [] while True: cap = cv2.VideoCapture(index) - if not cap.isOpened(): + if not cap.isOpened() and available_cameras: if (index - int(available_cameras[-1])) > 2: break else: @@ -563,6 +565,10 @@ def on_data_type_change(self): self.data_type = self.ui.combo_type.currentText() def on_qr_display(self, frame): + if frame is None: + frame = QPixmap(self.ui.video_in.size()) + frame.fill(QColor(FILL_COLOR)) + self.ui.video_out.setPixmap(frame) def on_qr_read(self): @@ -578,6 +584,10 @@ def on_qr_data_read(self, data): self.ui.data_in.setPlainText(data) def upd_camera_stream(self, frame): + if frame is None: + frame = QPixmap(self.ui.video_in.size()) + frame.fill(QColor(FILL_COLOR)) + self.ui.video_in.setPixmap(frame) def on_slider_move(self): @@ -710,5 +720,6 @@ def on_btn_save(self): app.setPalette(palette) main_win = MainWindow() - sys.exit(app.exec_()) + main_win.show() + app.exec()