请帮我写一个pyside的QMenu,菜单里有个关闭的action,点击这个action关闭当前窗口的例子
时间: 2024-04-30 15:20:06 浏览: 80
Python-Pyside6主窗口调用子窗口并互相传递参数
好的,以下是一个简单的例子:
```python
import sys
from PySide2.QtWidgets import QApplication, QMainWindow, QMenu, QAction
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建菜单对象及其动作
menu = QMenu(self)
close_action = QAction("关闭", self)
# 将动作添加到菜单中
menu.addAction(close_action)
# 将菜单设置为窗口的右键菜单
self.setContextMenuPolicy(0x2)
self.contextMenuEvent = lambda event: menu.exec_(event.globalPos())
# 连接动作的 triggered 信号到关闭窗口的槽函数
close_action.triggered.connect(self.close)
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle("QMenu 示例")
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个 `QMenu` 对象,并将一个 `QAction` 对象添加到菜单中。然后,我们将菜单设置为窗口的右键菜单,并将菜单显示在鼠标右键位置上。最后,我们将动作的 `triggered` 信号连接到窗口的 `close` 槽函数上,使得点击关闭动作时能够关闭当前窗口。
阅读全文