参数与任何重载调用都不匹配

时间:2017-05-10 20:13:41

标签: python qt pyqt pyqt4

当我在我的控制器上工作时,我正在使用python和qt designer我有这个错误:

  

文件" /home/sabri/Bureau/PycharmProjects/PFE/Controller/Cat.py",   第14行,在 init 中       self.ui.AddBtn.connect(self.add)TypeError:arguments与任何重载调用都不匹配:QObject.connect(QObject,SIGNAL(),   QObject,SLOT(),Qt.ConnectionType = Qt.AutoConnection):参数1有   意外类型' instancemethod' QObject.connect(QObject,SIGNAL(),   callable,Qt.ConnectionType = Qt.AutoConnection):参数1有   意外类型' instancemethod' QObject.connect(QObject,SIGNAL(),   SLOT(),Qt.ConnectionType = Qt.AutoConnection):参数1有   意外类型' instancemethod'

这是我第一次收到此错误,问题是什么! 这是我的代码:

from PyQt4 import QtCore, QtGui
from PFE.Classes.categorie import Category
from PFE.Interfaces.Categorie import Ui_Categorie_2

class Window(QtGui.QDialog):

    def __init__(self):
        QtGui.QApplication.__init__(self)
        self.ui = Ui_Categorie_2()
        self.ui.setupUi(self)
        self.ui.AddBtn.connect(self.add)


    def add(self):
        a = str(self.ui.textEdit.toPlainText())
        b = str(self.ui.textEdit_2.toPlainText())
        cat=Category(a, b)
        cat.save_to_db()
        print ("ajout avec success ")



if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

1 个答案:

答案 0 :(得分:0)

将信号与其插槽连接的方法如下:

{sender}.{signal}.connect({slot})

考虑到AddBtn是一个按钮,您想使用点击的信号,您的代码应如下所示:

self.ui.AddBtn.clicked.connect(self.add)