pyqt menuBar实现鼠标在菜单栏移动时,出发当前选中的菜单,给出代码
时间: 2024-02-25 11:54:28 浏览: 116
以下是一个简单的实现:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction, QMenuBar
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
menubar = self.menuBar()
fileMenu = QMenu("File", self)
menubar.addMenu(fileMenu)
editMenu = QMenu("Edit", self)
menubar.addMenu(editMenu)
self.fileAction = QAction("File", self)
self.editAction = QAction("Edit", self)
fileMenu.addAction(self.fileAction)
editMenu.addAction(self.editAction)
menubar.hovered.connect(self.on_hovered)
def on_hovered(self, action):
if action:
if action == self.fileAction:
print("File menu hovered")
elif action == self.editAction:
print("Edit menu hovered")
if __name__ == '__main__':
app = QApplication([])
main_window = MyMainWindow()
main_window.show()
app.exec_()
```
在这个例子中,我们创建了两个菜单并将它们添加到菜单栏中。然后,我们为每个菜单创建了一个动作并将它们添加到相应的菜单中。最后,我们连接了 `menubar.hovered` 信号到 `on_hovered` 槽。`on_hovered` 方法会检查哪个动作被悬停在菜单栏上,然后根据动作执行相应的操作。
阅读全文