2017-09-18 15 views
0

私の計算機のCalculateボタンを呼び出すために以下のコードを入力しましたが、実行時に結果は表示されません。それは私にエラーを与えることはありません。これが私の最初のGuiアプリなので間違っていることで私を助けてくれますか?私はプログラミングにはとても新しいです。Python 3.4コードでエラーや結果が得られません

from __future__ import division  
import sys 
from SalesTax import * 

class MyForm(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     QtGui.QWidget. __init__(self,parent) 
     self.ui =Ui_MainWindow() 
     self.ui.setupUi(self) 
     QtCore.QObject.connect(self.ui.calculateButton, QtCore.SIGNAL('clicked()'), self.calculate) 

    def calculate(self): 
     if len(self.ui.linePrice.text())!=0: 
      price= int(self.ui.linePrice.text()) 
     else: 
      price=0 

     if len(self.ui.SpinTaxRate.text())!=0: 
      taxRate= int(self.ui.spinTaxRate.value()) 
     else: 
      taxRate =0 

     tax = price*(taxRate/100) 
     self.ui.lineResult.setText("Sales Tax on the product is:" +str(tax)) 

if __name__ =="__main __": 
    app = QtGui.QApplication(sys.argv) 
    myapp = MyForm() 
    myapp.show() 
    sys.exit(app.exec_()) 
+1

https://codereview.stackexchange.com/の方が良いかもしれません。 – Dadep

+1

なぜあなたは 'sys.exit'を呼びますか? –

+0

@omri_saadon [examples on pyqt](https://github.com/baoboa/pyqt5/blob/master/examples/widgets/calculator.py)はこのパターンを持っています –

答えて

0

thisに応じMyFormクラスがQWidget、ないQWindowから継承する必要があります:あなたは、あなたの__init__QtGui.QWidget. __init__(self,parent)を使用している

class Calculator(QWidget): 
    def __init__(self, parent=None): 
     super(Calculator, self).__init__(parent) 

+0

お返事ありがとうございます。 MyFormはQMainWindowから継承しています。なぜなら、これはWidgetsではなくインターフェイスを設計するときに使用したテンプレートなのですから –

+0

あなたはクラス '' __init__'で適切な呼び出しを使うべきです。明示的なコンストラクタではなく 'super'コールを使うこともできます。 –

関連する問題