【问题标题】: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)
    

    【讨论】:

    • 这很好用,而且代码也更具可读性。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 2017-07-31
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多