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

相关推荐
dundunmm2 分钟前
机器学习之scikit-learn(简称 sklearn)
python·算法·机器学习·scikit-learn·sklearn·分类算法
古希腊掌管学习的神2 分钟前
[机器学习]sklearn入门指南(1)
人工智能·python·算法·机器学习·sklearn
Tlzns5 分钟前
Linux网络——UDP的运用
linux·网络·udp
码农土豆11 分钟前
PaddlePaddle飞桨Linux系统Docker版安装
linux·docker·paddlepaddle
一道微光16 分钟前
Mac的M2芯片运行lightgbm报错,其他python包可用,x86_x64架构运行
开发语言·python·macos
Hacker_xingchen16 分钟前
天融信Linux系统安全问题
linux·运维·系统安全
张暮笛26 分钟前
抓取手机HCI日志
linux
大猫和小黄28 分钟前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
Joyner201832 分钟前
【Linux】ubuntu通过远程命令行启动桌面应用
linux·服务器·ubuntu
ghostwritten35 分钟前
Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon
linux·运维·服务器