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

Qt控件:交互控件

交互控件

  • 1. QAction
      • 核心功能
      • API
    • 1.2 实例
      • 应用情况
      • 应用场景

1. QAction

##1. 1简介与API
QAction 是一个核心类,用于表示应用程序中的一个操作(如菜单项、工具栏按钮或快捷键触发的功能)。它将操作的逻辑与 UI 表现分离,使代码更易于维护和扩展。

核心功能

  1. 统一操作逻辑:一个 QAction 可同时关联到菜单、工具栏和快捷键,避免代码重复。
  2. 状态管理:支持启用 / 禁用、选中 / 未选中(如复选框菜单项)等状态。
  3. 图标与文本:可设置图标、文本、工具提示等 UI 属性。
  4. 信号与槽:通过 triggered() 信号触发操作。

API

常用构造函数

QAction(const QString &text, QObject *parent = nullptr);
QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr);

设置属性

setText(const QString &text):设置显示文本。
setIcon(const QIcon &icon):设置图标。
setToolTip(const QString &tip):设置工具提示。
setShortcut(const QKeySequence &shortcut):设置快捷键。
setCheckable(bool checkable):设置是否可勾选(如复选框菜单项)。
setChecked(bool checked):设置勾选状态。
setEnabled(bool enabled):启用 / 禁用操作。

获取属性

text():获取显示文本。
icon():获取图标。
shortcut():获取快捷键。
isChecked():判断是否被勾选。
isEnabled():判断是否启用。

信号

triggered():操作被触发时发出(如点击菜单项)。
toggled(bool checked):状态切换时发出(仅在 checkable 为 true 时)。

1.2 实例

应用情况

创建可勾选的动作(如工具栏按钮)

QAction *toggleToolbarAction = new QAction("Show Toolbar", this);
toggleToolbarAction->setCheckable(true);
toggleToolbarAction->setChecked(true);  // 默认显示connect(toggleToolbarAction, &QAction::toggled, [=](bool checked) {toolbar->setVisible(checked);
});

使用标准动作(如复制、粘贴)

// 使用 Qt 预定义的标准动作
QAction *copyAction = new QAction(QIcon::fromTheme("edit-copy"), "Copy", this);
copyAction->setShortcut(QKeySequence::Copy);  // 自动适配平台(Ctrl+C 或 Command+C)
connect(copyAction, &QAction::triggered, textEdit, &QTextEdit::copy);

应用场景

//菜单
QMenu *fileMenu = menuBar()->addMenu("File");
fileMenu->addAction(openAction);
fileMenu->addAction(saveAction);
fileMenu->addSeparator();  // 添加分隔线
fileMenu->addAction(exitAction);//工具栏
QToolBar *toolbar = addToolBar("Main Toolbar");
toolbar->addAction(openAction);
toolbar->addAction(saveAction);//快捷键
saveAction->setShortcut(QKeySequence("Ctrl+S"));
// 或使用标准快捷键
saveAction->setShortcut(QKeySequence::Save);

Qt 提供了许多预定义的标准快捷键,常见的包括:

常量描述Windows/LinuxmacOS
QKeySequence::Open打开文件Ctrl+OCommand+O
QKeySequence::Save保存文件Ctrl+SCommand+S
QKeySequence::Copy复制Ctrl+CCommand+C
QKeySequence::Paste粘贴Ctrl+VCommand+V
QKeySequence::Cut剪切Ctrl+XCommand+X
QKeySequence::Undo撤销Ctrl+ZCommand+Z
QKeySequence::Redo重做Ctrl+YCommand+Shift+Z
QKeySequence::Find查找Ctrl+FCommand+F
QKeySequence::Quit退出应用Ctrl+QCommand+Q

相关文章:

  • 分布式锁: Redisson 实现分布式锁的原理与技术细节
  • Transformer网络结构
  • 大数据技术的主要方向及其应用详解
  • 一台入网的电脑有6要素, 机器名,mac,ip,俺码,网关,dns,分别有什么作用
  • 【人工智能】大模型的成长日记:从训练到应用的全面蜕变
  • 经典案例 | 筑基与跃升:解码制造企业产供销协同难题
  • spring学习->sprintboot
  • A2A vs MCP vs AG-UI
  • 基于协同过滤的文学推荐系统设计【源码+文档+部署】
  • Android SwitchButton 使用详解:一个实际项目的完美实践
  • 【C++】类与对象
  • activeMq 限制用户接收topic范围
  • SkyWalking的工作原理和搭建过程
  • pcie phy-电气层-gen1/2(TX)
  • 无人机减震模块运行与技术要点分析!
  • 关于如何本地启动xxl-job,并且整合SpringBoot
  • 华三H3C交换机配置NTP时钟步骤 示例
  • Oc语言学习 —— 重点内容总结与拓展(上)
  • 【Linux】Shell脚本中向文件中写日志,以及日志文件大小、数量管理
  • Spring 框架中适配器模式的五大典型应用场景
  • 福州一宋代古墓被指沦为露天厕所,仓山区博物馆:已设置围挡
  • 马上评|训斥打骂女儿致死,无暴力应是“管教”底线
  • 国税总局上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 新华时评:让医德医风建设为健康中国护航
  • 农行再回应客户办理业务期间离世:亲属连续三次输错密码,理解亲属悲痛,将协助做好善后
  • 特朗普中东行:“能源换科技”背后的权力博弈|907编辑部