【问题标题】:Add right-click functionality to listwidget in PyQt4在 PyQt4 中向列表小部件添加右键单击功能
【发布时间】:2015-07-13 10:04:46
【问题描述】:

我正在尝试使用 Python 在 PyQt4 的列表小部件中添加右键单击功能。我想要一个弹出上下文菜单来显示有按钮,点击时应该执行一些功能。

如何在右键单击每个项目时弹出上下文菜单?

【问题讨论】:

  • 我已经解决了问题。

标签: python pyqt4 contextmenu qlistwidget


【解决方案1】:

我想出了一个非常简单的方法来做到这一点并且效果很好。在 ControlMainWindow 类中添加以下内容以将上下文菜单策略初始化为 CustomeContextMenu 其中 listWidget_extractedmeters 将是您的 QListWidget 的名称:

    self.listWidget_extractedmeters.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.listWidget_extractedmeters.connect(self.listWidget_extractedmeters,QtCore.SIGNAL("customContextMenuRequested(QPoint)" ), self.listItemRightClicked)

然后在 ControlMainwindow 类中,以下函数允许您添加上下文菜单项并调用执行某些功能的函数:

def listItemRightClicked(self, QPos): 
    self.listMenu= QtGui.QMenu()
    menu_item = self.listMenu.addAction("Remove Item")
    self.connect(menu_item, QtCore.SIGNAL("triggered()"), self.menuItemClicked) 
    parentPosition = self.listWidget_extractedmeters.mapToGlobal(QtCore.QPoint(0, 0))        
    self.listMenu.move(parentPosition + QPos)
    self.listMenu.show() 

def menuItemClicked(self):
    currentItemName=str(self.listWidget_extractedmeters.currentItem().text() )
    print(currentItemName)

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 2017-10-31
    • 2010-12-16
    • 2018-11-18
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多