请帮我写一个pyside2 的QTabWidget 鼠标停留在某个选项卡后点击右键弹出右键菜单,菜单里有删除菜单,删除当前鼠标停留的那个选项卡的代码
时间: 2023-05-19 12:02:27 浏览: 78
删除右键菜单中的选项
3星 · 编辑精心推荐
以下是实现该功能的代码:
```python
from PySide2.QtWidgets import QApplication, QMainWindow, QTabWidget, QMenu, QAction
from PySide2.QtCore import QPoint
class MyTabWidget(QTabWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.showContextMenu)
def showContextMenu(self, pos):
menu = QMenu(self)
deleteAction = QAction("删除", self)
deleteAction.triggered.connect(self.deleteCurrentTab)
menu.addAction(deleteAction)
menu.exec_(self.mapToGlobal(pos))
def deleteCurrentTab(self):
currentIndex = self.currentIndex()
self.removeTab(currentIndex)
if __name__ == '__main__':
app = QApplication([])
mainWindow = QMainWindow()
tabWidget = MyTabWidget(mainWindow)
tabWidget.addTab(QWidget(), "选项卡1")
tabWidget.addTab(QWidget(), "选项卡2")
mainWindow.setCentralWidget(tabWidget)
mainWindow.show()
app.exec_()
```
当鼠标停留在某个选项卡上并点击右键时,会弹出一个菜单,其中包含一个“删除”选项。如果选择“删除”选项,则会删除当前鼠标停留的选项卡。
阅读全文