У меня есть класс A с методом, который я хочу вызвать.Метод вызова PyQt4 из другого класса
class Class_A(QtGui.QMainWindow):
def __init__(self, database, tableName):
QtGui.QWidget.__init__(self)
self.dbu = database_manager_2.DatabaseUtility(database, tableName)
self.setupUi(self)
def setupUi(self, Class_A):
...
def print_somethig (self):
print 'hello'
Это класс B:
class class B(object):
def setupUi_1(self, Dialog):
...
self.my_instance = Class_A()
QtCore.QObject.connect(self.pushButtonSecond, QtCore.SIGNAL(_fromUtf8("clicked()")),self.my_instance.print_something())
Как вы можете видеть, я создал экземпляр из класса А, так я могу назвать это метод в классе В.
Я получил эту ошибку:
TypeError:
__init__()
takes exactly 3 arguments (1 given)
Я знаю, что это связано с ООП.
Я думаю, что сообщение об ошибке довольно само собой разумеется. Вам необходимо предоставить метод __init__ с тремя переменными при создании экземпляра класса: self, database и tableName. Python позаботится о первом сам по себе - всего два! –
Да, но я думаю, что должен быть какой-то способ преодолеть этот переменный спрос, потому что, в конце концов, я не хочу поставлять и таблицу DB ar, я просто хочу вызвать метод, который находится внутри этого класса, вот и все. – user3532371
@ user3532371: Я ответил на ваш вопрос. Есть только эти две возможности. Но с вашей оригинальной подписью не будет работать вызов Class_A(). – ProgrammingIsAwsome