Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - silentbass24

Pagine: [1]
1
PyQT / Gestione dell'errore di input in QLineEdit
« il: Agosto 21, 2021, 08:59 »
Buongiorno,
scrivo questo topic per avere supporto riguardo la gestione dell'errore. Premesso che sono diversi giorni che tento di risolvere il problema guardando molte soluzioni proposte nel web. Data la mia scarsa esperienza e la mia scarsa conoscenza del linguaggio, non ne sono venuto ancora a capo.

Ho scritto una piccola applicazione che tramite degli input in QlineEdit deve fare una ricerca su un foglio Excel e restituisce un determinato valore.
Se inserisco dei valori corretti l'applicazione gira correttamente e mi restituisce tutti i risultati a dovere. Nel momento in cui inserisco un valore non corretto o lascio lo spazio vuoto l'applicazione si arresta.
Per risolvere il problema ho pensato d'implementare la gestione dell'errore con try\except, ma anche implementando questa struttura l'applicazione si chiude senza darmi la possibilità d'inserire il valore corretto.
MI rendo conto sicuramente che si tratta di un errore dovuto alla mia non conoscenza del linguaggio.
Ringrazio in anticipo chiunque mi dia un supporto per risolvere il problema.

Di seguito riporto il codice:
from PyQt5 import QtWidgets, uic
from PyQt5.QtWidgets import *
import pandas as pd


#conversione excel in dataframe
prova = pd.read_excel(r'C:\Users\silen\Desktop\Prova.xlsx', sheet_name="Tabelle1", header=0)

#per eliminare la visualizzazione dell'indice del dataframe
blankIndex = [''] * len(prova)
prova.index = blankIndex

#effettua la ricerca e restituisce il risultato nella textbox
def CercaECalcola():
    valCerca = ""
    eta = 0
    try:
        valCerca = call.txtCodice.text()
        if valCerca != "" or prova["NOME"] is not valCerca:
            eta = prova.loc[prova["NOME"] == valCerca, "ETA"]
        else:
            raise ValueError("Valore ricercato, non presente")
       
    except ValueError:
        QMessageBox.critical(call, "Errore inserimento", "Non è stato trovato nessun valore rispondente alla ricerca!" )
       
   
    valore = prova.loc[prova["NOME"] == valCerca, "ValConfronto"]
    percen = int(call.txtSconto.text())
    if percen < 0:
        percen = 0
    eta = eta - (eta * (percen/100))
   
    call.txtPrezzoFinale.setText(str(eta[0]))#con lo zero si visualizza solo il valore senza il tipo di dati
    valore = float(valore)
    eta = float(eta)
    if eta > valore:
        call.txtMaggSiNo.setText("SI")
    else:
        call.txtMaggSiNo.setText("NO")
       
   

#funzione per il reset dei campi 
def clearAll():
    call.txtCodice.setText("")
    call.txtSconto.setText("")
    call.txtPrezzoFinale.setText("")
    call.txtMaggSiNo.setText("")

#carico l'interfaccia direttamente dal file .ui creato con QT
app = QtWidgets.QApplication([])
call = uic.loadUi("interfaccia2.ui")

#completamento automatico della casella di ricerca
compl = prova["NOME"]
completer = QCompleter(compl)
call.txtCodice.setCompleter(completer)

#chiamata della funzione di ricerca e calcolo con il bottone
call.btnCalcola.clicked.connect(CercaECalcola)

#chiamata della funzione di reset dei campi
call.btnReset.clicked.connect(clearAll)

#visualizzo ed eseguo l'applicazione
call.show()
app.exec_()
 

2
Benvenuto e regolamento / Ciao a tutti
« il: Agosto 20, 2021, 16:10 »
Sono un programmatore junior e attualmente sto studiando python, perché è molto interessante per le sue applicazioni pratiche in campo scientifico.
Sono molto inesperto sia nel linguaggio che nell'uso dei forum, quindi ogni consiglio è ben accetto. :) :)

Un saluto a tutti

Pagine: [1]