PyQt入门指南三十五 QAction动作组件

在PyQt中,QAction 是一个非常常用的组件,用于表示应用程序中的一个动作,比如菜单项、工具栏按钮或者快捷键。QAction 可以被添加到 QMenuQToolBar 或者直接作为一个按钮使用。

下面是一个简单的例子,展示了如何创建一个 QAction 并将其添加到菜单和工具栏中:

复制代码
python 复制代码
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QToolBar, QMenu

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # 创建一个QAction实例
        self.action = QAction('Open', self)
        self.action.setShortcut('Ctrl+O')  # 设置快捷键
        self.action.setStatusTip('Open a file')  # 设置状态栏提示
        self.action.triggered.connect(self.on_open)  # 连接信号槽

        # 创建一个菜单栏
        menubar = self.menuBar()
        file_menu = menubar.addMenu('&File')
        file_menu.addAction(self.action)  # 将QAction添加到菜单中

        # 创建一个工具栏
        toolbar = QToolBar(self)
        toolbar.addAction(self.action)  # 将QAction添加到工具栏中

        # 设置主窗口的中心部件(这里可以设置任何QWidget子类)
        self.setCentralWidget(None)

    def on_open(self):
        print('Open action triggered')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWin = MainWindow()
    mainWin.show()
    sys.exit(app.exec_())

在这个例子中,我们创建了一个名为 MainWindow 的类,它继承自 QMainWindow。在这个类的构造函数中,我们做了以下几件事:

  1. 创建了一个 QAction 实例,并设置了它的文本、快捷键、状态栏提示以及触发的槽函数。
  2. 创建了一个菜单栏,并在其中添加了一个名为 "File" 的菜单。
  3. QAction 添加到了 "File" 菜单中。
  4. 创建了一个工具栏,并将 QAction 添加到了工具栏中。
  5. 定义了一个槽函数 on_open,当 QAction 被触发时,这个函数会被调用。

运行这个程序,你会看到一个带有菜单栏和工具栏的主窗口。点击菜单栏中的 "File" -> "Open" 或者点击工具栏上的按钮,或者按下快捷键 Ctrl+O,都会触发 on_open 函数,并在控制台打印出 "Open action triggered"。

QAction 还有很多其他的属性和方法,比如可以设置图标、启用/禁用动作、检查动作是否被选中等等。你可以根据需要使用这些功能来增强你的应用程序。

相关推荐
忆杰3 分钟前
统计用户本月的连续登录天数
开发语言·python
令狐掌门13 分钟前
linux VFS简介
linux
东皇太星18 分钟前
python 常见数学公式函数使用详解
python
SuperW36 分钟前
从零学Linux(1)——软件包管理与shell编程
linux·运维·服务器
m0_640743561 小时前
华为OD-2024年E卷-字符串化繁为简[200分] -- python
python·华为od
卜及中1 小时前
【Python】数据处理工具:Pandas详细指南
开发语言·python·学习·pandas
shylyly_1 小时前
Linux->进程概念(精讲)
linux·服务器·进程·孤儿进程·环境变量·进程地址空间·虚拟地址
ZCQ_dashuaibi1 小时前
DHCP服务管理
linux·服务器·网络
Kusunoki_D1 小时前
Python 使用 Requests 模块进行爬虫
爬虫·python
激进小猪10021 小时前
Python算法笔记1_双指针问题
笔记·python·算法