Qt QAction动作——菜单栏、工具栏、状态栏

在学习菜单栏、工具栏、状态栏之前,我们需要了解一个叫“动作”的功能实现。

文章主要来源于:https://www.devbean.net/2012/09/qt-study-road-2-menubar-toolbar-statusbar/

·动作QAction

简介

QAction从名字上我们可以看出,这是一个类,它的功能是等待指令,执行工作。那么这个指令怎么来呢?比如菜单项、工具栏内按钮,用户在点击这些选项或按钮时,Qt得到反馈,执行指定功能。

一、用法

QAction可以设置图标、快捷键、提醒文本

二、代码展示

(1)、构造函数

以下展示的是QAction的构造函数。

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

(2)、快捷键

快捷键源码:

    void setShortcut(const QKeySequence &shortcut);
    QKeySequence shortcut() const;

    void setShortcuts(const QList<QKeySequence> &shortcuts);
    void setShortcuts(QKeySequence::StandardKey);
    QList<QKeySequence> shortcuts() const;
QKeySequences类称为按键序列,也就是设置快捷键的键位。

(3)、提醒文本

    void setStatusTip(const QString &statusTip);
    QString statusTip() const;

(4)、部分结合代码

	act = new QAction(QIcon("/Users/yucheng/allpic/help.png"),"帮助",this);		//包括图标路径、长时间停留提示、父指针
    act->setShortcut(QKeySequence::Open);
    act->setStatusTip("帮助文本");
    connect(act, &QAction::triggered, this, &MainWindow::ActionBehavior);	//建立连接 当动作被触发后,调用ActionBehavior函数

··菜单栏

一、简介

菜单栏就是应用的最上端一行的功能选项,Mac端的菜单栏在最上方

要想使用这个方法,我们必须借助QMenu类。

二、代码解释

菜单大家 用的比较多,没什么好说的,举一个菜单例子,

    act = new QAction(QIcon("/Users/yucheng/allpic/help.png"),"帮助",this);
    act->setShortcut(QKeySequence::Open);
    act->setStatusTip("帮助文本");
    connect(act, &QAction::triggered, this, &MainWindow::ActionBehavior);	//建立连接 当动作被触发后,调用ActionBehavior函数
    
    QMenu * menu = this->menuBar()->addMenu("菜单");		//建立菜单
    menu->addAction(act);								//菜单中添加动作

有两点要说的是:

QMainWindow已经为我们提供了菜单栏,后面提及的工具栏和状态栏也是。所以我们不需要创建一个新的对象,直接使用QMainWindow中的自带菜单栏。

action中的提示文本在菜单栏中不可用。只能在工具栏中有提示。

三、运行展示

···工具栏

1、简介

何为工具栏?

在QT中,我们使用QToolBar类来使用功能。

2、代码解释

    act = new QAction(QIcon("/Users/yucheng/allpic/help.png"),"帮助",this);
    act->setShortcut(QKeySequence::Open);
    act->setStatusTip("帮助文本");
    connect(act, &QAction::triggered, this, &MainWindow::ActionBehavior);	//建立连接 当动作被触发后,调用ActionBehavior函数
    
    QMenu * menu = this->menuBar()->addMenu("菜单");		//建立菜单
    menu->addAction(act);                                                       //菜单中添加动作

    QToolBar * tool1 = this->addToolBar("帮助");                      //建立工具栏
    tool1->addAction(act);                                                          //工具栏添加动作

    statusBar();                                                                            //建立状态栏,用于显示文本提示

3、界面效果

当然还有菜单栏。没有截上。

结尾

由于菜单栏和工具栏的内容较多,不可能一次性学完。暂时就介绍一些基础用法。更深功能往后在看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值