【问题标题】:Right click functionality in PyQT widget broken from PyQT4 to PyQT5 updatePyQT 小部件中的右键单击功能从 PyQT4 中断到 PyQT5 更新
【发布时间】:2017-03-12 03:36:54
【问题描述】:
我之前使用 PyQT4 开发了一个应用程序,包括一个 QListWidget,它有一个右键单击弹出窗口,允许用户快速从小部件中删除行。
这是基于 Stack Overflow 中的代码:PyQt: How to get most of QListWidget
不幸的是,升级到 PYQt5 后,此功能现已损坏。我收到错误:QListWidget 对象没有属性“连接”。
我怀疑这是由于 PyQt5 中的新实现造成的,这很烦人,尽管我无法从新的 Qt 文档中找到解决此问题的简单方法。
有人可以建议我如何恢复我的原始功能吗?
为了面向未来,我宁愿不回滚到 Qt5。
【问题讨论】:
标签:
python
qt
user-interface
pyqt
pyqt5
【解决方案1】:
在 PyQt5 中,不支持 PyQt4 的旧式信号和插槽。
所以,要解决问题,请替换行
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)