提交 de40612a 编写于 作者: 之一Yo's avatar 之一Yo

修复多次显示同一个菜单导致程序崩溃的问题

上级 58c591cc
......@@ -496,10 +496,10 @@ class RoundMenu(QWidget):
if action not in self._actions:
return
action.trigger()
self._hideMenu()
if not self.isSubMenu:
action.trigger()
return
# close parent menu
......@@ -507,7 +507,8 @@ class RoundMenu(QWidget):
while menu.parentMenu:
menu = menu.parentMenu
menu.deleteLater()
menu.close()
action.trigger()
def _onItemEntered(self, item):
if not isinstance(item.data(Qt.UserRole), RoundMenu):
......@@ -520,7 +521,7 @@ class RoundMenu(QWidget):
if self.isSubMenu:
self.hide()
else:
self.deleteLater()
self.close()
def menuActions(self):
return self._actions
......@@ -541,10 +542,8 @@ class RoundMenu(QWidget):
margin = view.viewportMargins()
rect = view.visualItemRect(self.menuItem).translated(view.mapToGlobal(QPoint()))
rect= rect.translated(margin.left(), margin.top()+2)
mr = self.geometry()
mr.setHeight(self.itemHeight + 10)
if self.parentMenu.geometry().contains(pos) and not rect.contains(pos) and \
not mr.contains(pos):
not self.geometry().contains(pos):
view.clearSelection()
self._hideMenu()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册