PyQT小部件中的右键单击功能从PyQT4更新到PyQT5更新

时间:2016-10-29 11:39:49

标签: python qt user-interface pyqt pyqt5

我之前使用PyQT4开发了一个应用程序,包括一个QListWidget,右键单击弹出窗口允许用户快速删除小部件中的行。

这是基于Stack Overflow的代码:PyQt: How to get most of QListWidget

不幸的是,升级到PYQt5后,此功能现已中断。我收到错误:QListWidget对象没有属性'connect'。

我怀疑这是由于PyQt5中的一个新实现,这很烦人,虽然我找不到一个简单的方法来解决这个新的Qt文档。

有人可以建议我如何恢复原来的功能吗?

为了防范未来,我宁愿不回到Qt5。

1 个答案:

答案 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)