【Qt】QPushButton 与 QAction 的区别

1. QPushButton

  • QPushButton 是一个界面控件,能显示到界面上的。
  • QPushButtonQWidget的一个子类,是一个表示按钮的界面控件。
  • 它用于在GUI中提供一个标准的按钮,用户可以点击它来触发一个即时的动作或命令。
  • 按钮可以显示文本、图标或两者都有,并且可以被设置为不同的状态(如可按、不可按)。
  • QPushButton 通常用于表单、对话框、工具栏和其他需要用户直接与之互动以触发特定动作的地方。
  • 代码
QPushButton *button = new QPushButton("Click Me");
connect(button, &QPushButton::clicked, this, &MyClass::handleButtonClick);

2. QAction

  • QAction表示一个应用中的动作或命令,它本身不是一个UI控件,而是一种可以在多个地方重用的抽象动作表示。
  • 通过将QAction对象关联到菜单项、工具条按钮或快捷键,你可以在不同的上下文中提供相同的命令。
  • 这样,当动作的状态(如启用/禁用、选中/未选中)发生变化时,所有关联到这个动作的界面元素都会相应地更新状态,从而实现了界面元素之间的一致性并减少了代码重复。
  • 代码
QAction *action = new QAction(QIcon(":/icons/icon.png"), "Action", this);
connect(action, &QAction::triggered, this, &MyClass::handleActionTriggered);
toolbar->addAction(action);
menu->addAction(action);

3. 总结

用途

  • QPushButton通常在用户需要点击按钮来触发某个操作时使用,属于具体的界面控件;
  • QAction表示的是一个可在多个地方重用的抽象动作或命令,可以与多种触发方式相关联,如菜单项、工具栏按钮和快捷键。

用户界面

  • QPushButton是一个可视化的界面元素,直接显示在GUI中;
  • QAction本身不提供可视化界面,需要被绑定到一个或多个UI元素上(如QMenuQToolBar)来进行展示。

功能复用

  • QAction便于在多个地方重用相同的动作逻辑,
  • QPushButton通常用于实现单一的、独立的界面按钮。

相关推荐

  1. 【Qt】QPushButton QAction 区别

    2024-06-07 16:48:05       25 阅读
  2. =====区别

    2024-06-07 16:48:05       34 阅读
  3. & && 区别

    2024-06-07 16:48:05       30 阅读
  4. ajaxaxios区别

    2024-06-07 16:48:05       66 阅读
  5. MFCqt区别

    2024-06-07 16:48:05       54 阅读
  6. TCPUDP区别

    2024-06-07 16:48:05       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 16:48:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 16:48:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 16:48:05       82 阅读
  4. Python语言-面向对象

    2024-06-07 16:48:05       91 阅读

热门阅读

  1. 删除数组重复元素(哈希方法+双指针)

    2024-06-07 16:48:05       23 阅读
  2. 【C++】【VScode】常用快捷键

    2024-06-07 16:48:05       28 阅读
  3. redis修改密码

    2024-06-07 16:48:05       28 阅读
  4. Python实战:计算向量夹角及相关系数

    2024-06-07 16:48:05       29 阅读
  5. grafana是什么?怎么使用?

    2024-06-07 16:48:05       28 阅读
  6. 【经验分享】嵌入式入坑经历(选段)

    2024-06-07 16:48:05       28 阅读
  7. Django信号详解

    2024-06-07 16:48:05       32 阅读
  8. 【C++】12.模板进阶

    2024-06-07 16:48:05       27 阅读