如何修改PyQt ContextMenu代码以在二级子菜单中添加Brenda选项
Qt的多级菜单嵌套逻辑非常直接:如果要给某个菜单新增下一级子菜单,只需创建新的QMenu实例,调用父级菜单的addMenu()方法将子菜单挂载到父级上,再给子菜单添加对应动作即可。
你需要的在二级子菜单中添加Brenda选项的修改后完整代码如下:
def contextMenuEvent(self,event): menu = QMenu(self) Option1 = menu.addAction("Paul") Option2 = QMenu("Richard") Option2_1 = Option2.addAction("Frida") Option2_2 = Option2.addAction("Susan") # 新增二级子菜单,也可根据需求挂载到其他菜单项下调整层级 Option2_3 = QMenu("更多人员") Option2_3_1 = Option2_3.addAction("Brenda") Option2.addMenu(Option2_3) menu.addMenu(Option2) Option3 = menu.addAction("Thomas") action = menu.exec_(self.mapToGlobal(event.pos())) if action == Option1: print("Paul") elif action == Option2_1: print("Frida") elif action == Option2_2: print("Susan") # 新增Brenda选项触发逻辑 elif action == Option2_3_1: print("Brenda") elif action == Option3: print("Thomas")
如果你需要将Brenda放在Susan的下一级子菜单中,调整Option2_2的定义即可:
# 将原有的Option2_2 = Option2.addAction("Susan")替换为以下内容 Option2_2 = QMenu("Susan") Option2_2_1 = Option2_2.addAction("Brenda")
对应触发判断分支修改为:
elif action == Option2_2_1: print("Brenda")
内容的提问来源于stack exchange,提问作者Nepura
相关产品推荐
相关产品推荐

