PyQt使用各种动作(QAction)来为主窗口应用程序用户提供各种功能,这些动作会有文本(用在菜单,含菜单栏菜单和快捷菜单)、图标(用在菜单和工具栏上)、工具栏提示信息、状态栏提示信息,以及连接的触发时供调用的槽。动作可以设为可选中,即可通过点击来切换状态。如有必要,动作还可以绑定数据。
值得注意的是,需要给QAction一个父类对象,例如,主窗口,以便声明动作的作用域,还可以确保在适当的时候删除它们。
例如,若要创建一个“打开文件”的动作,可以这样写(这里会假设已有适当的图标和fileOpen方法):
self.fileOpenAction=QAction(QIcon("open.png"),"&Open",self) # 动作在self中可用
self.fileOpenAction.setShortcut(QKeySequence.Open)#设置标准化快捷键 self.fileOpenAction.setToolTip("打开文件")#工具栏提示文本 self.fileOpenAction.setStatusTip("打开已有的文件")#状态栏提示文本 self.fileOpenAction.triggered.connect(self.fileOpen)#连接槽
再例如,若要创建文本加粗动作(可切换状态),可以这样写:
self.actionTextBold = QAction(QIcon("textbold.png"),"&Bold",self) # 动作在self中可用 self.actionTextBold.setShortcut(QKeySequence.Bold)#设置跨平台标准化快捷键 #windows 系统下快捷键"Ctrl+B" self.actionTextBold.setToolTip("文本加粗")#工具栏提示文本 self.actionTextBold.setStatusTip("文本加粗")#状态栏提示文本 self.actionTextBold.setCheckable(True)#设为可选中(可切换状态) self.actionTextBold.toggled[bool].connect(self.textBold)#连接toggled信号的槽 #self.actionTextBold.toggled.connect(self.textBold)#也可以不指名信号参数
#也任然可以用triggered信号,但此时不能传递bool参数(选中状态) #self.actionTextBold.triggered.connect(self.textBold)
也可以在初始化时设定QAction的各项参数:
self.actionTextBold = QAction( QIcon.fromTheme('format-text-bold', QIcon('textbold.png')), "&Bold", self, priority=QAction.LowPriority, shortcut=Qt.CTRL + Qt.Key_B, triggered=self.textBold, checkable=True)
本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!