1. QPushButton
QPushButton
是一个界面控件,能显示到界面上的。
QPushButton
是 QWidget
的一个子类,是一个表示按钮的界面控件。
- 它用于在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元素上(如QMenu
、QToolBar
)来进行展示。
功能复用
QAction
便于在多个地方重用相同的动作逻辑,
QPushButton
通常用于实现单一的、独立的界面按钮。