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

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
http://www.xdnf.cn/news/6720.html

相关文章:

  • PT2020 20触控I2C输出IC
  • 时频分析的应用—外部信号的显影和定点清除
  • 第三部分:内容安全(第十六章:网络型攻击防范技术、第十七章:反病毒、第十八章:入侵检测/防御系统(IDS/IPS))
  • 第J1周:ResNet-50算法实战与解析
  • C语言图案代码大全:从基础到高级
  • 院校机试刷题第四天:1911反转公约数、1702十六进制不进位加法
  • PR-2021
  • ADC深入——SNR、SFDR、ENOB等概念
  • 深入浅出拆分学习,图神经网络拆分学习,混合联邦学习
  • 网络攻防模拟:城市安全 “数字预演”
  • 14 C 语言浮点类型详解:类型精度、表示形式、字面量后缀、格式化输出、容差判断、存储机制
  • AlphaEvolve:基于Gemini的算法发现与优化综合报告
  • AI在线写作平台:AnKo引领未来创作新潮流!
  • 分析主流编程语言中哪些为支持面向对象的语言
  • 什么是实景VR?实景VR应用场景
  • 如何早期识别帕金森病?
  • 《图解 TCP/IP》笔记
  • 安科瑞DJSF1352-D直流电能表:破解充电桩计量难题
  • linux安装宝塔面板到数据盘
  • python Excel操作,将一个工作表中的sheet页复制到另一个工作表中(包括单元格的内容、样式、格式等)
  • 电动汽车直流快充充电桩AEV200-DC240M4的详细介绍
  • 防篡改小工具监测被该文件
  • 【GAN网络入门系列】一,手写字MINST图片生成
  • 实战解析MCP-使用本地的Qwen-2.5模型-AI协议的未来?
  • 录音证据想得到法院的采纳,应注意哪几点?
  • 存储器上如何存储1和0
  • Python 实验 1
  • 为什么Flexray在渐渐被TSN以太网替代-AI的回答
  • 若依框架的Excel导出功能
  • 03、基础入门-SpringBoot的大时代背景