当前位置: 首页 > news >正文

使用QAction编辑器添加QAction到ui里

Qt DesignerQt Creator 的 UI 设计器 中,可以直接通过 Action Editor 可视化添加和管理 QAction,无需手动编写代码。以下是详细步骤:

步骤 1:打开 Action Editor

  1. 在 Qt Creator 中打开 .ui 文件(双击项目中的 .ui 文件进入设计模式)。
  2. 在右侧面板中找到 “Action Editor” 标签页(如果未显示,可通过菜单 View → Views → Action Editor 启用)。

步骤 2:添加新的 QAction

  1. 点击 “New” 按钮(或右键空白处选择 “New Action”)。
  2. 在弹出的对话框中设置 Action 的属性:
    • Text:显示名称(如 "打开文件")。
    • Object Name:对象名(自动生成,如 actionOpen)。
    • Shortcut:快捷键(如 Ctrl+O)。
    • Icon:点击 ... 选择图标(需提前将图标添加到资源文件 .qrc)。
    • ToolTip:悬停提示(如 "打开一个文件")。
    • Checkable:是否可勾选(如用于切换状态的动作)。

步骤 3:将 QAction 添加到菜单或工具栏

方法 1:添加到菜单栏
  1. 在 UI 设计器中,双击顶部的 “Type Here” 输入菜单名称(如 "文件")。
  2. 在展开的菜单中,直接拖拽 actionOpen 到菜单项中。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ItmmwXtJ-1743843221193)(https://i.imgur.com/KjLv8xG.png)]
方法 2:添加到工具栏
  1. 在 UI 设计器中,右键工具栏区域 → “Add Tool Bar”(如果工具栏不存在)。
  2. Action Editor 拖拽 actionOpen 到工具栏上。

步骤 4:自动生成的代码

保存 .ui 文件后,Qt 会自动生成 ui_*.h 文件,其中包含:

// ui_mainwindow.h
class Ui_MainWindow {
public:
    QAction *actionOpen;  // 自动声明的 QAction
    // ...
    void setupUi(QMainWindow *MainWindow) {
        actionOpen = new QAction(MainWindow);
        actionOpen->setObjectName("actionOpen");
        actionOpen->setText("打开文件");
        actionOpen->setShortcut(QKeySequence("Ctrl+O"));
        // ...
        menuFile->addAction(actionOpen);  // 添加到菜单
        toolBar->addAction(actionOpen);   // 添加到工具栏
    }
};

步骤 5:连接信号槽(可选)

如果需要在代码中处理 Action 的触发事件:

  1. 在关联的窗口类(如 MainWindow)中声明槽函数:
private slots:
       void on_actionOpen_triggered();  // 命名格式:on_<action名>_<信号>
       ```
2. 在实现文件中编写逻辑:
```javascript
void MainWindow::on_actionOpen_triggered() {
       qDebug() << "打开文件动作被触发!";
       // 在此添加文件打开逻辑
   }

注意:Qt 会自动连接命名规范的槽函数(无需手动 connect)。

关键注意事项

  1. 资源文件(.qrc)

    • 如果使用图标,需提前将图片添加到项目的资源文件中(右键项目 → Add New… → Qt → Qt Resource File)。
  2. 对象命名规范

    • Action 的 objectName(如 actionOpen)会影响自动信号槽的连接。
  3. 动态修改 Action

    • 可在代码中通过 ui->actionOpen->setText("新名称") 动态修改属性。
  4. 分离式菜单/工具栏

    • 同一个 QAction 可以同时添加到菜单和工具栏,保持状态同步。

总结

操作方式
添加 ActionAction Editor → New → 设置属性
添加到菜单拖拽 Action 到菜单栏的 “Type Here” 区域
添加到工具栏拖拽 Action 到工具栏
处理触发事件使用 on_<action名>_triggered() 槽函数

通过 Action Editor,可以完全可视化地管理 QAction,无需手动编写创建和布局代码,大幅提升开发效率!

http://www.dtcms.com/a/112775.html

相关文章:

  • 【数字电路】第一章 数制和码制
  • Kotlin 集合函数:map 和 first 的使用场景
  • 自定义组件触发饿了么表单校验
  • LaTeX、KaTeX、Markdown 的用法
  • 15.2linux设备树下的platform驱动编写(程序)_csdn
  • 与 AI 共舞:解锁自我提升的无限可能
  • 如何通过优化HMI设计大幅提升产品竞争力?
  • 配置网络编辑器
  • 【Rust学习】Rust环境搭建和Rust基础语法
  • Jetpack Compose 自定义组件完全指南
  • python基础-13-处理excel电子表格
  • 叁仟数智指路机器人的智能导航精度如何?
  • 【爬虫案例】采集 Instagram 平台数据几种方式(python脚本可直接运行)
  • 你用的是Bing吗?!
  • 【AI论文】GPT-ImgEval:一个用于诊断GPT4o在图像生成方面的综合基准
  • 论文写作篇#8:双栏的格式里怎么插入横跨两栏的图片和表格
  • Kafka 概念
  • Johnson算法——两阶段流水线调度的最优解法
  • k8s安装cri驱动创建storageclass动态类
  • Deep Reinforcement Learning for Robotics翻译解读2
  • 关于apple ios苹果mdm监管锁的漏洞与修复
  • web forms可视化开发显示的网页是用ExpressionWebEditorFrame控件,是IE内核还是简单的HTML解析?如何让他加载CSS和JS?
  • 如何一天背300到500个单词
  • 赚钱模拟器-百宝库v0.1.1
  • 精品可编辑PPT | 基于湖仓一体构建数据中台架构大数据湖数据仓库一体化中台解决方案
  • ffmpeg音频分析
  • 机器学习(1)—线性回归
  • 【Pandasai】理解SmartDataframe 类:对dataframe添加自然语言处理能力
  • 从爬虫到可视化:Python分析豆瓣Top250电影数据
  • 不在 qtdesigner中提升,进行主题程序设计