代码
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('右键菜单测试')
self.resize(500, 500)
self.btn = QPushButton(self)
self.btn.setText('ABCD')
self.btn.setContextMenuPolicy(Qt.CustomContextMenu) # 打开右键菜单的策略
self.btn.customContextMenuRequested.connect(self.showMenu) # 绑定事件
self.menu = QMenu(self.btn)
self.menu.addAction('删除')
self.menu.triggered.connect(self.processtrigger)
def showMenu(self, pos):
tx = int(self.pos().x() + pos.x())
ty = int(self.pos().y() + pos.y())+30
self.menu.move(tx,ty)
self.menu.show()
def processtrigger(self, q):
print(self.menu.parent().text())
self.menu.parent().deleteLater()
右键绑定了processtrigger方法,在该方法中实现了对其父控件的删除。