python菜单栏代码_Python 图形开发:PyQt 菜单栏与工具栏的创建

在这篇文章中,我将讲解如何创建菜单栏以及工具栏。

我们将创建一个主窗口,以一个简单的 QLabel 作为中心窗口部件,此外还有菜单栏、工具栏和状态栏。

QLabel 用于在菜单被点击后显示相应的文本,状态栏用于在光标移动到菜单上时显示相应的提示。

我们先给出完整的代码,然后再具体解释这些代码的含义。

完整代码示例

动作(QAction)

创建动作

我们使用 QAction 来创建一个动作,创建 QAction 有以下三种方式:

例如:

QObject 表示该动作的父对象,一般将其设为当前窗体,这里即为 self。

设置快捷键

然后使用 QAction 的 setShortcut() 方法来设置快捷键,可以使用 PyQt 内置的常量来设置,例如 QKeySequence.Open,也可以使用字符串来设置,例如 "Ctrl+O"。

设置提示

接着,设置状态栏和工具栏提示信息:

该提示信息会在鼠标移到菜单选项上方时显示在状态栏中,以及移到工具栏上方时以气泡方式显示出来。

连接信号

最后,将动作(action),也就是菜单的选项,连接到对应的槽中:

当我们点击菜单选项时,便会触发该动作的 triggered() 信号,从而调用相应的方法。

统一创建动作

当我们需要创建多个动作时,可以编写一个专门用来创建动作的方法,统一连接信号、设置快捷键、提示信息等等。

这样我们就可以通过这个方法来创建动作并完成一系列的设置了:

菜单栏(QMenuBar)

添加菜单

创建完 QAction 之后,我们需要创建菜单来放置这些动作。通过 QMainWindow 的 menuBar() 方法可以获取到菜单栏实例(QMenuBar),调用该实例的 addMenu() 方法则可以添加菜单(QMenu)。

添加动作

添加完菜单之后,其本身是空的,我们需要将先前创建的动作添加到菜单上。

添加一组动作

当我们需要添加多个动作时,可以编写一个 addActions() 方法来批量添加一组动作。接下来,我们就来看看如何实现 addActions() 方法。

添加子菜单

我们通过 QMenu.addMenu() 方法在 Edit 菜单中添加子菜单 Format,并调用自定义的 addActions() 方法来添加一组动作:

工具栏(QToolBar)

添加工具栏

禁止移动/浮动

设置对象名

通过设置工具栏对象的名称,我们可以在后续代码中更方便地引用该工具栏。实际上,每一个 QObject 都有一个 setObjectName() 方法,设定对象名相当于给对象设定一个独一无二的标识。

添加动作

添加一组动作

由于 QMenu 与 QToolBar 都提供了 addAction() 和 addSeparator() 方法,因此我们也可以将上面自定义的 addActions() 方法用于工具栏的动作添加:

至此,我们就完成了菜单栏和工具栏的创建。

相关信号

QAction

QMenu

QMenuBar

相关文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值