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)
Другие вопросы по тегам