Seite 1 von 1

PyQT Signale und Slots Type Error 'sip.methoddescriptor'

Verfasst: Mittwoch 12. Oktober 2011, 07:47
von grorol2
Hallo liebe Pythongemeinde,

ich versuche gerade meine ersten Schritte in der Oberflächenprgrammierung mit Python zu machen.
Aus dem Buch Galileo Computing habe ich folgendes Beispiel übernommen, bekomme es aber nicht zum laufen.
Die Fehlermeldung lautet: Type Error 'sip.methoddescriptor' object is not callable
Kann mir jemand erklären was diese Fehlermeldung bedeutet? bzw. wie ich das Problem in den Griff kriege. Meine bisherige Google Suche lies mich auf einen evtl. vorhandenen Buck in Python stoßen aber ich denke, dass ist eher unwahrscheinlich.
Vielen Dank schon mal für jegliche Hilfe

Code: Alles auswählen

import sys 
from PyQt4 import QtGui
from PyQt4 import QtCore
from testui import Ui_Dialog as Dlg

class MeinDialog(QtGui.QDialog, Dlg): 
	def __init__(self): 
		QtGui.QDialog.__init__(self) 
		self.setupUi(self)
		
	# Slots einrichten 
		self.connect(self.buttonOK, 
			QtCore.SIGNAL("clicked()"), self.onOK) 
		self.connect(self.buttonAbbrechen, 
			QtCore.SIGNAL("clicked()"), self.onAbbrechen)

	def onOK(self): 
        # Daten auslesen
		d = {} 
		print "text: %s" % self.vorname.text() 
		
		
		
		self.close()

	def onAbbrechen(self): 
		print "Schade" 
		self.close()
		
app = QtGui.QApplication(sys.argv) 
dialog = MeinDialog() 
dialog.show() 
sys.exit(app.exec_())

Re: PyQT Signale und Slots Type Error 'sip.methoddescriptor'

Verfasst: Mittwoch 12. Oktober 2011, 09:28
von BlackJack
@grorol2: „Galileo Computing“ ist kein Bucht sondern ein Verlag. Und die haben mehrere Bücher über Python im Angebot. Deine Angabe ist also nicht eindeutig. Das umfassende Handbuch für Python von denen hat Schwächen.

Mit einer Fehlermeldung kommt in der Regel ein Traceback, der ist auch interessant für Leute die helfen wollen. Du hättest zumindest noch verraten können *wo* die Ausnahme ausgelöst wird.

Zum Verbinden von Signalen und Slots gibt es übrigens seit geraumer Zeit eine neue API, die etwas sicherer ist, und auch weniger Schreibarbeit bedeutet:

Code: Alles auswählen

self.connect(self.buttonOK, QtCore.SIGNAL("clicked()"), self.onOK)
# 
# =>
# 
self.buttonOK.clicked.connect(self.onOK)

Re: PyQT Signale und Slots Type Error 'sip.methoddescriptor'

Verfasst: Mittwoch 12. Oktober 2011, 10:22
von lunar
@grorol2: Es gibt übrigens ein eigenes Unterforum für Fragen rund um PyQt.

@Mods: Vielleicht besser ins Qt-Unterforum verschieben?

Re: PyQT Signale und Slots Type Error 'sip.methoddescriptor'

Verfasst: Donnerstag 13. Oktober 2011, 09:27
von grorol2
Erst mal Danke für die Tipps, habe mir jetzt ein anderes Tutorial gesucht http://zetcode.com/tutorials/pyqt4/german/ und das Problem umgangen. Das es eine Untergruppe für PyQ gibt habe ich zu spät gesehen.

Falls mir noch jemand die allgemeine Bedeutung der Fehlermeldung erläutern könnte wäre ich Ihm sehr dankbar.

Re: PyQT Signale und Slots Type Error 'sip.methoddescriptor'

Verfasst: Donnerstag 13. Oktober 2011, 18:45
von Hyperion
grorol2 hat geschrieben:Erst mal Danke für die Tipps, habe mir jetzt ein anderes Tutorial gesucht http://zetcode.com/tutorials/pyqt4/german/ und das Problem umgangen.
Wobei dort noch die alte Syntax gezeigt wird - zumindest ein zusätzlicher Blick in die PyQt-Doku sollte da noch drin sein; BlackJack hat ja ein wenig davon schon gezeigt.

Re: PyQT Signale und Slots Type Error 'sip.methoddescriptor'

Verfasst: Donnerstag 13. Oktober 2011, 19:12
von BlackJack
@grorol2: Du versuchst ein Objekt vom Typ `sip.methoddescriptor` aufzurufen. Das ist aber nicht aufrufbar.

Re: PyQT Signale und Slots Type Error 'sip.methoddescriptor'

Verfasst: Donnerstag 20. Oktober 2011, 09:30
von grorol2
Danke werde ich tun bzw. hab ich bereits getan.