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

相关推荐
接针1 分钟前
UV 常用命令
python·uv
ziguo11221 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤1 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆2 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
Yolanda_20222 小时前
在vscode终端中可使用pip,但是cmd终端中找不到命令 pip问题的解决
vscode·python·conda·pip
2301_764441332 小时前
用动力学系统(微分方程)为 Kernberg 的客体关系单元提供数学化的操作定义,把“自体—客体“这对心理结构建模成一个二维耦合系统
数据结构·python·算法·数学建模
dogstarhuang3 小时前
用 Doubao-Seed-Evolving + Python 免费写一个网页正文提取工具(实战教程)
爬虫·python·ai编程
△曉風殘月〆3 小时前
如何在Linux中安装Qt开发环境
linux·运维·qt
猫头虎3 小时前
什么是ZCode for GLM-5.2?
开发语言·人工智能·python·科技·算法·ai编程·ai写作
心运软件3 小时前
Python实战:中国大学排行榜数据采集与可视化大屏
后端·python