qt 添加动作 (QAction)

2023-10-27

    // !!! Qt 5
    // ========== mainwindow.h
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H

    #include <QMainWindow>

    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();

    private:
        void open();

        QAction *openAction;    //在头文件中声明动作指针
    };




    #endif // MAINWINDOW_H

    // ========== mainwindow.cpp
    #include <QAction>
    #include <QMenuBar>
    #include <QMessageBox>
    #include <QStatusBar>
    #include <QToolBar>

    #include "mainwindow.h"

    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent)
    {
        setWindowTitle(tr("Main Window"));

        openAction = new QAction(QIcon(":/images/doc-open"), tr("&Open..."), this); //创建QAction实例,并赋值给指针openaction

//以下是动作的设置。
        openAction->setShortcuts(QKeySequence::Open);
        openAction->setStatusTip(tr("Open an existing file"));
//将动作实例对象与要进行的下一步进行绑定
        connect(openAction, &QAction::triggered, this, &MainWindow::open);

//注意,以下是动作的添加
        QMenu *file = menuBar()->addMenu(tr("&File"));
        file->addAction(openAction);

        QToolBar *toolBar = addToolBar(tr("&File"));
        toolBar->addAction(openAction);

        statusBar() ;
    }

    MainWindow::~MainWindow()
    {
    }

    void MainWindow::open()
    {
        QMessageBox::information(this, tr("Information"), tr("Open"));
    }

重点:一:动作是一个QAction对象。

二:要将对象通过connect与其他方法,例如open进行绑定。

三:在适合的场景,给相关的组件添加动作绑定

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qt 添加动作 (QAction) 的相关文章

  • QDesktopServices::openUrl 在资源管理器中选择指定文件

    在大多数编码程序中 您可以右键单击该项目 然后单击 在资源管理器中显示 它会在资源管理器中显示选定项目的文件 在 Qt 中使用 QDesktopServices 如何做到这一点 或在 QT 中执行此操作的任何方式 您可以使用此方法在 Win
  • Qt中如何获取鼠标在屏幕上的位置?

    我想获取屏幕上的鼠标坐标 我怎样才能在 Qt 中做到这一点 在 Windows 上 使用 C 我正在做类似答案中建议的事情对于这个问题 https stackoverflow com q 11737665 1420197 正如文档所述 QC
  • QtCreator 调试暂停停在代码而不是汇编处

    如何配置 QtCreator 以便在调试并按下暂停时它会显示当前正在处理的代码 现在显示汇编 无法在任何地方找到有关此问题的答案 我使用的是 Windows 7 我在 Ubuntu 16 04 中使用 Qt Creator 4 2 2 时遇
  • GoQt 致命错误:QAbstractAnimation:没有这样的文件或目录

    我尝试编译 Qt 来开发桌面应用程序 我按照 Qt 网站上的官方 wiki 指南的说明进行操作 当我尝试go run示例文件夹中的示例 我收到错误 去运行 home pinkya rabbit workspace go1programs s
  • Qt - 如何粘合两个窗口并将它们移动在一起?

    就像qmmp Qt 音乐播放器ui设计一样 这两个或三个窗口实际上在同一个窗口中 因为只有一个dock图标 并且这些窗口可以一起移动并相互附着 我看了源码 好像有用QDockWidget 但我真的不知道如何获得它的细节 当您手动移动辅助窗口
  • 如何将图像显示为缩略图

    我有一个QTreeView显示硬盘驱动器和目录 我也有一个QListView显示图像文件如下 但我想将图像显示为缩略图 如下所示 My code mainWidget mainWidget QWidget parent QWidget pa
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • QToolButton:更改菜单位置

    使用菜单时QToolButton菜单显示在按钮的正下方 有没有办法在按钮的左侧 右侧显示菜单 我知道这个问题不久前已得到回答 但我想为此问题添加新答案 因为接受的答案不再有效 实际上 更改 QToolButton 上的菜单位置非常容易 您需
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 如何使QTableView类的restoreState()和saveState()正常工作?

    首先 我想说 我的问题已经在这里讨论过 并且这里是 https stackoverflow com questions 1163030 qt qtableview and horizontalheader restorestate 但答案并
  • Qt:测量事件处理时间

    我想测量我的应用程序中的哪些事件在主线程中需要很长时间才能执行 阻塞 GUI 或者至少是否有任何事件花费的时间超过 比如说 10 毫秒 显然 我对需要很长时间的任务使用线程和并发 但有时很难在其他线程中放入的内容和可以保留在 GUI 中的内
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • Qt:如何连接到 SQLite?

    我安装了 SQLite3 解压到 c sqlite 创建了一个数据库 c sqlite mzsales 现在我试图在 QTableView 中显示其内容 QSqlDatabase db QSqlDatabase addDatabase QS
  • QT从QTableWidgetItem继承到Widget并覆盖'<'运算符

    我想要一个QTableWidget具有定制的某些单元QProgressBars 并且我希望能够对包含这些的列进行排序 我的定制QProgressBar继承自两者QProgressBar and QTableWidgetItem 并且我正在覆
  • Qt - 无法让 lambda 工作[重复]

    这个问题在这里已经有答案了 我有以下功能 我想在其中修剪我的std set
  • 如何检测QTableView中的双击

    我正在使用 PyQt 创建 GUI 应用程序 在继承自 QTableView 的视图中 需要检测用户双击行时选择的行 该表可以排序 但不能编辑 我该怎么做 注意 尝试了 doubleClicked int 信号 它是由鼠标按钮发出的 而不是
  • 如何使用meta-toolchain-qt5构建Qt(带有QtWebEngine支持)?

    我正在尝试使用构建 Qtmeta toolchain qt5 但是当我通过这样做时poky glibc x86 64 meta toolchain qt5 cortexa7hf vfp vfpv4 neon toolchain 2 0 1
  • Qt 是否已经有了自己的 new 和 delete 运算符?

    我正在使用一个QGraphicsScene小部件并在其上显示一些点QGraphicsRectItem 这意味着要拨打很多电话new addItem 当出现时 并且removeItem delete摆脱未使用的点 当然 对于性能问题 我已经实
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • Qt 安装程序框架 - 如何在卸载时仅删除某些文件和文件夹

    我使用 Qt 安装程序框架 如何确保在卸载时仅删除某些文件或文件夹 而不是像当前那样删除安装文件夹中的所有文件 先感谢您 您可以覆盖默认行为component createOperations对于卸载程序 然后使用手动指定每个卸载路径com

随机推荐

  • spring-boot集成spring-brick实现动态插件

    spring boot集成spring brick实现动态插件 spring boot集成spring brick实现动态插件 项目结构 需求实现 spring boot集成spring brick 环境说明 1 主程序集成spring b
  • GnosisSafeProxyFactory合约学习

    GnosisSafe是以太坊区块链上最流行的多签钱包 它的最初版本叫 MultiSigWallet 现在新的钱包叫Gnosis Safe 意味着它不仅仅是钱包了 它自己的介绍为 以太坊上的最可信的数字资产管理平台 The most trus
  • UTXO的定义(交易,输入输出)-1

    在比特币系统中并没有账户的概念 有的是遍布全网区块链的UTXO 所谓UTXO是指关联比特币地址的比特币金额的集合 是一个包含数据和可执行代码的数据结构 一个UTXO的基本单位是 聪 聪 是比特币的最小计量单位 一个比特币等于10 8聪 一个
  • Go标准库日志打印,以及同时输出到控制台和文件

    打印 在使用go写一些小程序时 我们没必要引入额外的包 直接使用fmt标准包打印即可 import fmt func main fmt Println line1 fmt Print line2 fmt Printf line d n 3
  • PTA 剥洋葱(C语言 + 详细注释 + 代码超简单)

    输入格式 一行 一个整数 即图形的层数 输出格式 如上述图形 输入样例 3 输出样例 AAAAA ABBBA ABCBA ABBBA AAAAA 打印图形题关键是找规律 一般只需两重循环 行循环 列循环 include
  • keras_contrib 安装(各种尝试详细过程)

    问题描述 from keras contrib layers import CRF 指示报错没有安装此模块 但直接查找模块找不到 百度的解决方法 第一次尝试 pip install git https www github com kera
  • Git学习笔记(Ubuntu)Git分支

    分支简介 分支创建 git branch xx 查看 git log oneline decorate 分支切换 git checkout xx 查看分叉历史 git log oneline decorate graph all 分支新建与
  • npm -v 报错的解决方案

    如果你尝试了 百度里 所有查到的方法 都没有用 可以试着 在安装完成后 进入 C Users Administrator config configstore 文件夹 清理 update notifier npm json 文件后 再试 也
  • check_hostname requires server_hostname

    代理服务器 Proxy Server 的功能是代理网络用户去取得网络信息 形象地说 它是网络信息的中转站 是个人网络和Internet服务商之间的中间代理机构 负责转发合法的网络信息 对转发进行控制和登记 vpn
  • myslq服务安装启动

    D Program Files x86 MySQL MySQL Server 5 5 bin gt mysqld exe install Service successfully installed D Program Files x86
  • 【MATLAB】三维图像绘制+图形对象句柄

    目录 一 三维曲面绘图 二 图形对象句柄 1 三位图形属性设置 2 动态图 用循环语句 pause 叠加画图 hold on hold on 的基础上刷新画图 set h xdata x ydata y 每次重置点 曲线或曲面 的横纵坐标
  • Could not read Username Error for Git

    在用使用Vundle安装neocomplete时失败 查看log提示could not read Username for https github com Device not configured 经检查这里提示的Username是指n
  • vue3中,this.$router.push刷新当前页面,该页面不重新加载需要手动刷新的解决方案

    1 demo vue 在this router push demo 后 demo vue没有刷新也没有重新加载 但是路由地址已经变了 只是需要手动刷新 2 解决 监听一下当前路由 watch route to from to表示要跳转的路由
  • 固定资产可视化智能管理系统

    什么是资产管理 企业一般有设备 工具 IT通讯 仪器 载具 文档 家具和一些其他的资产 比如某个制造企业现状 共计约有8000个资产分布存在于30个区域 包括实验室 办公室和工厂 其中每年新入资产预估为2000个 报废资产预计1800个 在
  • Python 3D函数图形投影到2D坐标轴上

    1 contourf函数命令 cmap matplotlib cm jet norm matplotlib colors Normalize vmin min np array sol vmax max np array sol plt c
  • 统计学习方法 第七章习题答案

    习题7 1 题目 比较感知机的对偶形式与线性可分支持向量机的对偶形式 解答 感知机 原始形式 min w b
  • linux:linux基础命令(一)

    前言 为什么要学linux 为了运维 项目上线 所以要了解linux操作系统 什么是LNMP linux nginx mysql php小常识 一个用Linux Shell编写的可以为CentOS RadHat Debian Ubuntu
  • 进程和子进程

    进程和子进程 父子进程有独立的数据段 堆 栈 共享代码段 Linux中每个进程都有4G的虚拟地址空间 独立的3G用户空间和共享的1G内核空间 fork 创建的子进程也不例外 子进程资源的由来 1G内核空间既然是所有进程共享 因此fork 创
  • input type=“file”上传文件(一)

    使用input标签 type file 的时候就可以上传文件 为input标签添加change事件 调用函数
  • qt 添加动作 (QAction)

    Qt 5 mainwindow h ifndef MAINWINDOW H define MAINWINDOW H include