PyQt TypeError connect()
Я очень плохо знаком с 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'
То, что я пытаюсь сделать, это удалить вкладку в моем графическом интерфейсе и добавить различные (которые я реализую позже, просто протестирую это сейчас) из меню. Мой код меню работает отлично, и теперь я хочу установить действие для того, что происходит, когда он нажимается. Я создал этот метод удаления в моем файле TaskedTabs, функция удаления отлично работает в моей функции инициализации, но я хочу отделить его (для целей позже). Может кто-нибудь объяснить, что не так с моим кодом?
1 ответ
Как говорится в сообщении об ошибке, connect()
нужен вызываемый метод. Но то, что вы даете, это результат метода, потому что вы его вызываете. remove()
возвращается None
, который затем используется в качестве аргумента для connect()
, который не работает. Решите это, сняв скобки после remove
,
loadEmpathy.triggered.connect(self.taskTabs.remove)