import sys from PySide6.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QFormLayout, QLineEdit, QPushButton, QLabel, QMessageBox, QFileDialog) from PySide6.QtCore import Qt from PySide6.QtGui import QPixmap import requests class PassportForm(QWidget): def __init__(self): super().__init__() self.setWindowTitle("PAssportForms") self.main_layout = QHBoxLayout() self.form_layout = QVBoxLayout() self.data_layout = QFormLayout() self.number_input = QLineEdit() self.name_input = QLineEdit() self.surname_input = QLineEdit() self.gender_input = QLineEdit() self.fingerprint_url_input = QLineEdit() self.photo_url_input = QLineEdit() self.data_layout.addRow("Passport Number", self.number_input) self.data_layout.addRow("Name", self.name_input) self.data_layout.addRow("Surname", self.surname_input) self.data_layout.addRow("Gender", self.gender_input) self.data_layout.addRow("Fingerprint URL", self.fingerprint_url_input) self.data_layout.addRow("Photo URL", self.photo_url_input) self.load_button = QPushButton("Load Data") self.load_button.clicked.connect(self.load_data) self.submit_button = QPushButton("Submit") self.submit_button.clicked.connect(self.submit_form) self.form_layout.addLayout(self.data_layout) self.form_layout.addWidget(self.load_button) self.form_layout.addWidget(self.submit_button) self.image_layout = QVBoxLayout() self.photo_label = QLabel("Photo") self.photo_label.setFixedSize(200, 200) self.photo_label.setStyleSheet("border: 1px solid black;") self.photo_label.setAlignment(Qt.AlignCenter) self.fingerprint_label = QLabel("Fingerprint") self.fingerprint_label.setFixedSize(200, 200) self.fingerprint_label.setStyleSheet("border: 1px solid black;") self.fingerprint_label.setAlignment(Qt.AlignCenter) self.image_layout.addWidget(self.photo_label) self.image_layout.addWidget(self.fingerprint_label) self.main_layout.addLayout(self.form_layout) self.main_layout.addLayout(self.image_layout) self.setLayout(self.main_layout) def load_data(self): passport_number = self.number_input.text() response = requests.get(f"http://localhost:9999/passport/{passport_number}") if response.status_code == 200: data = response.json() self.name_input.setText(data['name']) self.surname_input.setText(data['surname']) self.gender_input.setText(data['gender']) self.fingerprint_url_input.setText(data['fingerprint_url']) self.photo_url_input.setText(data['photo_url']) self.load_image(self.photo_label, f"http://localhost:9999/static/imgs/data/{passport_number}-zdjecie.jpg") self.load_image(self.fingerprint_label, f"http://localhost:9999/static/imgs/data/{passport_number}-odcisk.jpg") else: QMessageBox.critical(self, "Error", "Failed to load passport data") def load_image(self, label, url): response = requests.get(url) if response.status_code == 200: pixmap = QPixmap() pixmap.loadFromData(response.content) label.setPixmap(pixmap.scaled(label.size(), Qt.KeepAspectRatio)) else: label.setText("Image not found") def submit_form(self): passport_data = { "number": self.number_input.text(), "name": self.name_input.text(), "surname": self.surname_input.text(), "gender": self.gender_input.text(), "fingerprint_url": self.fingerprint_url_input.text(), "photo_url": self.photo_url_input.text() } response = requests.post("http://localhost:9999/passport/", json=passport_data) if response.status_code == 200: QMessageBox.information(self, "Success", "Passport data submitted successfully") else: QMessageBox.critical(self, "Error", "Failed to submit passport data") if __name__ == "__main__": app = QApplication(sys.argv) window = PassportForm() window.show() sys.exit(app.exec())