PyQt4错误:意外的类型'方法'
问题描述:
我想运行一个简单的PyQT4应用程序。我已经安装了Python3.4和PyQt4。我测试过一个简单的“Hello World”应用程序,并且都运行良好。然而,当试图编写一个简单的税务计算器应用程序时,我遇到了一个“意外类型”方法“错误。不知道我做错了什么。这里是我的Python代码:PyQt4错误:意外的类型'方法'
import sys
from PyQt4 import QtCore, QtGui, uic
qtCreatorFile = 'tax.ui' # Enter file here.
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.calcTax.connect(self.CalculateTax)
def CalculateTax(self):
price = int(self.priceBox.toPlainText())
tax = (self.taxRate.value())
total_price = price + ((tax/100) * price)
total_price_string = 'The total price with tax is: ' + str(total_price)
self.resultBox.setText(total_price_string)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
,这里是在执行的时候返回的完整错误消息:
Traceback (most recent call last):
File "tax.py", line 24, in <module>
window = tax()
File "tax.py", line 13, in __init__
self.calcTax.connect(self.CalculateTax)
TypeError: arguments did not match any overloaded call:
QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'method'
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'method'
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 1 has unexpected type 'method'
会很感激的任何帮助
答
的new connection style的语法如下:
self.calcTax.some_signal.connect(self.CalculateTax)
例如,如果self.calcTax是一个按钮,并且您想要执行f当你按下该按钮时,你应该输入以下内容:
self.calcTax.clicked.connect(self.CalculateTax)
+0
谢谢!似乎工作^ _ ^ – Setzor
什么是'calcTax'? – eyllanesc
'self.calcTax.clicked.connect(self.CalculateTax)'。 – ekhumoro