inf04-24_01/py6/app.py

111 lines
4.2 KiB
Python
Raw Normal View History

2024-06-24 20:25:59 +00:00
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())