2016-02-16 33 views
1

我想做一个简单的计算器,将需要2个数字,用户输入并将它们相乘。但是,当我将ans_string设置为float时,代码无法正常工作,但是如果将其设置为str,它将起作用。PyQt不会显示我的答案作为一个浮点数

我希望能够输入带小数点的数字,并且只在答案上显示2个小数位。

如果我运行代码ans_str我得到以下错误“AtrributeError:‘QLabel’对象有没有属性‘SETT’

from PyQt5.QtWidgets import QMainWindow, QWidget, QApplication 

from ui_multform import Ui_CalcWindow 

class MainWindow(QMainWindow, Ui_CalcWindow): 
def __init__(self, parent = None): 
    super(MainWindow, self).__init__(parent) 
    self.ui = Ui_CalcWindow() 
    self.ui.setupUi(self) 

    self.ui.pushButton.clicked.connect(self.mult) 

def mult(self, value): 
    in_num1 = float(self.ui.lineEdit.text()) 
    in_num2 = float(self.ui.lineEdit_2.text()) 
    ans = in_num1 * in_num2 
    ans_string = float(ans) # << here ans_string is created 
    print (ans_string) # << Where u need to put it 
    self.ui.label_2.setText(ans_string) 


if __name__ == '__main__': 
    import sys 
    app = QApplication(sys.argv) # A new instance of QApplication 
    calculator = MainWindow()  # We set the form to be our MainWindow (design) 
    calculator.show()    # Show the form 
    sys.exit(app.exec_()) 

回答

1

你只需要浮动转换为字符串,并应用您可以使用python string formatting mini-language将浮点数转换为一个字符串,并且也只显示两位小数位数

ans_string = '{0:0.2f}'.format(ans) 
self.ui.label_2.setText(ans_string) 
相关问题