【发布时间】:2017-11-06 09:00:08
【问题描述】:
我在使用 Python 3、PyQt5 和 Qt5 的应用程序中遇到语法/理解问题。我不确定是哪一个导致了问题。
我负责将在 Windows 下运行的 GUI 应用程序移植到 Linux 上,并带有更新版本的库。我无权访问原来在Windows下运行的。
我在几个地方看到:
menu = QMenu(self)
action = menu.addAction("Some string")
action.triggered[()].connect(self.handler)
我认为这曾经有效。我正在移植到 Python 3.5、PyQt 5.7 和 Qt 5.7。我有理由相信代码是为每个版本的早期版本编写的。
现在执行它会在action.triggered[()] 段上生成'there is no matching overloaded signal' 错误。
通过猜测并查看我在某处找到的几个示例,我将最后一行更改为:
action.triggered.connect(self.handler)
它现在似乎可以工作了。
有人能解释一下原始triggered[()] 语法的含义/工作原理,以及明显变化发生在哪个“产品”中——如果能够了解变化的地方会很好吗?我的替换是否只是 triggered 正确/相同的行为?
【问题讨论】:
标签: python python-3.x pyqt qt5 pyqt5