2013-05-22 3 views
0

Я очень новичок в Python, поэтому заранее прошу прощения, если это простая ошибка.PyQt TypeError connect()

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 и добавить в различные (которые я буду реализовывать позже, просто проверяя это сейчас) из меню. Мой код меню работает отлично, и теперь я хочу установить действие для того, что происходит, когда его щелкают. Я создал этот метод remove в моем файле TaskedTabs, функция remove отлично работает в моей функции init, но я хочу ее разделить (для целей позже). Может ли кто-нибудь объяснить, что не так с моим кодом?

ответ

2

Как говорится в сообщении об ошибке, connect() нуждается в вызываемом методе. Но то, что вы даете, это результат метода, потому что вы его вызываете. remove() возвращает None, который затем используется как аргумент для connect(), который не работает. Решите это, сняв скобки после remove.

loadEmpathy.triggered.connect(self.taskTabs.remove) 
+0

Спасибо за разъяснение, отлично работает. Я, наверное, должен был пробовать это сам, прежде чем спрашивать, но, тем не менее, спасибо. – user123

Смежные вопросы