我之前使用PyQT4开发了一个应用程序,包括一个QListWidget,右键单击弹出窗口允许用户快速删除小部件中的行。
这是基于Stack Overflow的代码:PyQt: How to get most of QListWidget
不幸的是,升级到PYQt5后,此功能现已中断。我收到错误:QListWidget对象没有属性'connect'。
我怀疑这是由于PyQt5中的一个新实现,这很烦人,虽然我找不到一个简单的方法来解决这个新的Qt文档。
有人可以建议我如何恢复原来的功能吗?
为了防范未来,我宁愿不回到Qt5。
答案 0 :(得分:2)
在PyQt5中,PyQt4's old-style signals and slots are not supported。
因此,要解决问题,请替换
行 self.myListWidget.connect(self.myListWidget, QtCore.SIGNAL("customContextMenuRequested(QPoint)" ), self.listItemRightClicked)
带
self.myListWidget.customContextMenuRequested.connect(self.listItemRightClicked)
并替换
行 self.connect(menu_item, QtCore.SIGNAL("triggered()"), self.menuItemClicked)
与
menu_item.triggered.connect(self.menuItemClicked)