【问题标题】:PyQt TypeError connect()PyQt TypeError 连接()
【发布时间】:2013-05-23 00:18:37
【问题描述】:

我对 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 文件中创建了这个删除方法,删除函数在我的 init 函数中工作得很好,但我想将它分开(用于稍后的目的)。谁能解释我的代码有什么问题?

【问题讨论】:

    标签: python pyqt


    【解决方案1】:

    正如错误消息所说,connect() 需要一个可调用的方法。但是你给它的是一个方法的result,因为你正在调用它。 remove() 返回None,然后将其用作connect() 的参数,这不起作用。通过删除remove 之后的括号来解决此问题。

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

    【讨论】:

    • 感谢您的解释,完美运行。在询问之前我可能应该自己尝试一下,但仍然感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 2017-11-01
    • 2019-07-30
    相关资源
    最近更新 更多