QPushButton右击事件
时间: 2024-04-10 14:10:53 浏览: 85
PyQt5按钮点击事件 给按钮绑定事件调用自定义函数 QPushButton
5星 · 资源好评率100%
可以通过重写QPushButton的contextMenuEvent函数实现右击事件。
示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMenu, QAction
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import QPoint
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QPushButton右击事件')
self.btn = QPushButton(self)
self.btn.setText('右击我')
self.btn.setGeometry(50, 50, 100, 30)
self.btn.clicked.connect(self.showMenu)
self.show()
def showMenu(self):
menu = QMenu(self)
action1 = QAction(QIcon('exit.png'), '退出', self)
action1.triggered.connect(self.close)
menu.addAction(action1)
cursor_pos = QCursor.pos()
menu.exec_(cursor_pos)
def contextMenuEvent(self, event):
menu = QMenu(self)
action1 = QAction(QIcon('exit.png'), '退出', self)
action1.triggered.connect(self.close)
menu.addAction(action1)
cursor_pos = QCursor.pos() + QPoint(0, 20)
menu.exec_(cursor_pos)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个示例中,我们重写QPushButton的contextMenuEvent函数,并在其中创建了一个QMenu对象和一个QAction对象。然后我们通过QCursor.pos()获取鼠标右击的位置,调用QMenu的exec_()函数显示菜单。这样就可以实现QPushButton的右击事件了。
阅读全文