我对Python很陌生,所以如果这是一个简单的错误,我会提前抱歉。
class TaskTabs(QtGui.QTabWidget):
...(some init stuff here)....
def remove(self):
self.removeTab(0)
self.addTab(Tabs.General(self.nao, self.parent), 'General')
在另一堂课:
self.taskTabs = TaskTabs(self.nao, mainWidget)
....(Some other stuff here)....
loadEmpathy = QtGui.QAction(QtGui.QIcon(), '&Load Empathy', self)
loadEmpathy.setShortcut('Ctrl+E')
loadEmpathy.triggered.connect(self.taskTabs.remove())
我得到的错误是:
TypeError: connect() slot argument should be a callable or a signal, not 'NoneType'
我要做的是删除我的GUI中的选项卡,然后添加各种选项卡(我稍后会实现,现在只测试它)。我的菜单代码完美无缺,现在我想为点击它时发生的事情设置一个动作。我在我的TaskedTabs文件中创建了这个remove方法,remove函数在我的init函数中运行得很好,但是我想把它分开(以后的目的)。任何人都可以解释我的代码有什么问题吗?
答案 0 :(得分:2)
正如错误消息所示,connect()
需要一个可调用的方法。但是你给它的是方法的结果,因为你正在调用它。 remove()
返回None
,然后将其用作connect()
的参数,但不起作用。通过删除remove
之后的方括号来解决此问题。
loadEmpathy.triggered.connect(self.taskTabs.remove)