前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyQt 的动作组(QActionGroup)

PyQt 的动作组(QActionGroup)

作者头像
用户6021899
发布2019-08-14 17:37:32
1.6K0
发布2019-08-14 17:37:32
举报
文章被收录于专栏:Python编程 pyqt matplotlib

动作组(QActionGroup),是用于管理多个可选型动作(checkable QAction)的类,它可以保证组中所有的动作只要有一个“开”,则其他的所有动作都为"关"。

在讲解QActionGroup的用法之前,先讲解上一篇提到的QAction的创建的一种封装方法。

def createAction(self,text,icon=None,checkable=False,slot=None,tip=None,shortcut=None): action = QAction(text,self) if icon is not None: action.setIcon(QIcon(icon)) if checkable: action.setCheckable(True)#可切换 if slot is not None: action.toggled.connect(slot) else: if slot is not None: action.triggered.connect(slot) if tip is not None: action.setToolTip(tip)#工具栏提示 action.setStatusTip(tip)#状态栏提示 if shortcut is not None: action.setShortcut(shortcut)#快捷键 return action

自定义好上述方法后,就可以简洁地创建QAction:

#文本左对齐动作 self.actionTextLeft = self.createAction("textleft","textleft.png",True,self.textLeft,"文本左对齐",None) #文本居中对齐动作 self.actionTextCenter = self.createAction("textleft","textcenter.png",True,self.textCenter,"文本居中对齐",None) #文本右对齐动作 self.actionTextRight = self.createAction("textright","textright.png",True,self.textRight,"文本右对齐",None)

现在,用于动作组的三个动作已经创建完毕,就可以创建QActionGroup并向其添加QAction:

#文本对齐 动作组,保证只有一个动作为“开” textAlignmentGroup = QActionGroup(self)# self is parent textAlignmentGroup.addAction(self.actionTextLeft) textAlignmentGroup.addAction(self.actionTextCenter) textAlignmentGroup.addAction(self.actionTextRight)

还需设定组中的某一个动作为“开”:

self.actionTextLeft.setChecked(True)#动作组中需设定某一个动作为开

最后就可以往工具条或者菜单添动作组中的动作了:

#依然是分别添加动作(工具条没有添加动作组的方法) editToolbar.addAction(self.actionTextLeft) editToolbar.addAction(self.actionTextCenter) editToolbar.addAction(self.actionTextRight)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档