2017-12-31 35 views
1

Ich möchte Calculator Bot mit PyQt5 und ich bekomme diesen Fehler. Kann mir helfen?Ich möchte Calculator Bot mit PyQt5 und ich bekomme Fehler

P. S Ich bin begginer in PyQt5

Mein Fehler ist dies:

TypeError: setText(self, str): argument 1 has unexpected type 'int' 

And My-Code ist dies:

class Dialog(QDialog): 
    def __init__(self): 
     QDialog.__init__(self) 
     self.dialog = QComboBox() 
     self.lbl = QLabel("Choose Gas Name:") 
     self.but = QPushButton("Calculate") 
     self.litre = QLineEdit(self) 
     self.regular = QLabel("Regular >>> "+str(2.27)) 
     self.euro_reg = QLabel("Euro Regular >>> "+str(2.33)) 
     self.diesel = QLabel("Diesel >>> "+str(2.39)) 
     self.calculated = QLabel("") 
     self.init_ui() 
    def init_ui(self): 
     layout = QVBoxLayout() 
     layout.addWidget(self.regular) 
     layout.addWidget(self.euro_reg) 
     layout.addWidget(self.diesel) 
     layout.addWidget(self.litre) 
     layout.addWidget(self.lbl) 
     layout.addWidget(self.dialog) 
     layout.addWidget(self.but) 
     layout.addWidget(self.calculated) 

     self.dialog.addItem("Regular") 
     self.dialog.addItem("Euro Regular") 
     self.dialog.addItem("Diesel") 
     self.setGeometry(100,100,200,200) 
     self.but.clicked.connect(self.calculate) 
     self.setLayout(layout) 
     self.show() 
    def calculate(self, layout): 
     if self.litre.text() == "": 
      self.calculated.setText("<font color=red>Please Enter Litre") 
     else: 
      litre_int = int(self.litre.text()) 
      self.calculated.setText(litre_int*int(2.27)) 
+2

Sie den Parameter in der letzten Zeile umwandeln sollte eine Zeichenfolge zu erhalten: 'self.calculated.setText (str (litre_int * int (2.27)))' – PRMoureu

Antwort

1

setText erwartet einen String, kein int. Sie müssen explizit das Ergebnis in einen String konvertieren:

self.calculated.setText(str(litre_int*int(2.27))) 
# Here -----------------^ 
Verwandte Themen