0
我用我想調用的方法得到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())
正如你可以看到我已經創建了從A類的實例,這樣我就可以調用它的方法在B類
我得到這個錯誤:
TypeError:
__init__()
takes exactly 3 arguments (1 given)
我知道這與OOP有關。
我認爲錯誤信息是不言自明的。在實例化類時,您需要爲三個變量提供__init__方法:self,database和tableName。 Python自己照顧第一個 - 只有兩個去! –
是的,但我認爲必須有一些方法來克服這個可變的需求,因爲畢竟我不想提供和數據庫的表,我只是想調用位於該類內的方法,就是這樣。 – user3532371
@ user3532371:我回答了你的問題。只有這兩種可能性。但是用你的原始簽名,沒有辦法調用Class_A()將會工作。 – ProgrammingIsAwsome