2015-07-10 151 views
0
table = QTableView() 
model = QStandardItemModel() 
table.setModel(model) 
r = table.model().rowCount() 
c = table.model().columnCount() 
tLeft = table.model().index(0, 0) 
bRight = table.model().index(r, c) 
table.dataChanged(tLeft, bRight).connect(SomeFunction) 

AttributeError: 'NoneType' object has no attribute 'connect'table.dataChanged(索引,索引)。將(someFunction)失敗

目標 - 調用SomeFunction時的項目之一直接由用戶在QTableView()改變。

我該怎麼做?我看到NoneType對象不能具有屬性連接,但它爲什麼是NoneType。

請評論。我是一名初學者。 QT5。

+0

它看起來像函數table.dataChanged(tLeft,bRight)返回的是None。應該從'table'對象調用'connect'方法嗎? (這只是一個猜測,我從來沒有使用過Qt5) –

+0

如果我將它應用於像'table.model()。dataChanged(tLeft,bRight).connect(SomeFunction)'這樣的類型錯誤:原生Qt信號不可調用' –

+0

你檢查過文檔嗎?哪些對象具有'connect'方法?你見過它的一個例子嗎? –

回答

1

你應該這樣做:

table.model().dataChanged.connect(someFunction) 
# or model.dataChanged.connect(someFunction) 

不需要精確的參數。該插槽應如下所示:

def someFunction(tLeft,bRight): 
    #do stuff