Пробую реализовать свой слот на PyQt4, чего-то не идет.
Программа при каждом нажатии на кнопку печатает в консоли счетчик нажатий.
На С++ - все работает.
Counter.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui,QtCore
WHAT=0 # глоб. прем. - счетчик
class Counter(QtGui.QWidget): # класс счетчиков
def __init__(self,*args): # конструктор
QtGui.QWidget.__init__(self,*args)
def myreaction(): # реализация слота
global WHAT
WHAT +=1
print "It's myreaction WHAT=",WHAT
if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
counter=Counter() # создаем объект
button = QtGui.QPushButton() # создаем кнопку
# 1) QtCore.QObject.connect(button, QtCore.SIGNAL("clicked()"), Counter().myreaction())
# 2) QtCore.QObject.connect(button, QtCore.SIGNAL("clicked()"), Counter.myreaction())
# 3)QtCore.QObject.connect(button, QtCore.SIGNAL("clicked()"), counter, Counter.myreaction())
print WHAT # дублирующая печать
button.show()
sys.exit(app.exec_())
1)TypeError: myreaction() takes no arguments (1 given)
2)TypeError: unbound method myreaction() must be called with Counter instance as first argument (got nothing instead)
3) То же,что и 2)
Если надо могу рабочий код C++ привести.
Заранее спасибо.