在Qt中添加菜单图标

第一步:新建Qt Widgets Application,取合适的项目名称,基类选择QMainWindow,类名为MainWindow。
第二步:创建完项目后,双击mainwindow.ui文件进入设计模式。在这里可以看到界面左上角的“在这里输入”,我们可以在这里添加菜单。双击“在这里输入”,将其更改为“文件(&F)”,然后按下回车键,效果如下图所示。这里的&F表明将菜单的快捷键设置为了Alt+ F,可以看到,实际的显示效果中&符号是隐藏的。
在这里插入图片描述
第三步:同样的方法,我们在文件菜单中添加“新建(&N)”子菜单,效果如下图2- 11所示。菜单后面的那个加号图标是用来创建下一级菜单的。(PS:菜单中如果无法输入中文,可以从别处复制粘贴)
在这里插入图片描述
第四步:.Qt中的一个菜单被看做是一个Action,我们在下面的Action编辑器(Action Editor)中可以看到刚才添加的“新建”菜单,如下图
在这里插入图片描述
双击该条目,会弹出编辑动作对话框,这里可以进行各项设置,比如我们可以设置菜单项的快捷键,点击一下Shortcut后面的行编辑器,然后按下键盘上的Ctrl + N,这样就可以将该菜单项的快捷键设置为Ctrl + N。
在这里插入图片描述

在编辑动作对话框中的“图标”后面的
在这里插入图片描述黑色箭头下拉框可以选择使用资源还是使用文件来最为图标,如果使用文件的话,那么就可以直接在弹出的文件对话框中选择本地磁盘上的一个图标文件。下面我们来讲述使用资源的方式,如果直接点击这个按钮就是默认的使用资源。现在我们先按下编辑动作对话框的OK按钮关闭它。
第五步:添加资源文件。.Qt中可以使用资源文件将各种类型的文件添加到最终生成的可执行文件中,这样就可以避免使用外部文件而出现的一些问题。我们向项目中添加新文件,模板选择Qt分类中的Qt资源文件(Qt Resource File)。然后将名称设置为myicon。
在这里插入图片描述
在这里插入图片描述
第六步:添加完文件后会自动打开该资源文件,需要先添加前缀,点击“添加”按钮,然后选择“添加前缀”,默认的前缀是“/new/prefix1”,这个可以随意修改(不要出现中文字符),我们这里因为要添加图片,所以修改为“/myimages”。然后再按下添加按钮来添加文件,这里最好将所有要用到的图片放到项目目录中。比如这里在项目目录中新建了一个images文件夹,然后将需要的图标文件粘贴进去。
在这里插入图片描述
当添加完资源后,一定要按下Ctrl + S(或者选择文件/保存所有文件)来保存资源文件,不然在后面可能无法显示已经添加的资源。
添加图标的两种方法:
方法一:使用资源文件
第一步:我们重新回到设计模式打开新建菜单的编辑动作对话框,然后点击
显示画面如下:
在这里插入图片描述
第二步:我们点击这里需要的新建图标file.gif,按下确定,运行程序即可。
方法二:使用代码添加图标
第一步:对于添加的资源文件,在项目源码目录中可以看到,即myicons.qrc,使用写字板程序将其打开,可以发现它其实就是一个XML文档:

<RCC>
    <qresource prefix="/myimages">
        <file>image/edit.png</file>
        <file>image/file.gif</file>
        <file>image/open.png</file>
    </qresource>
</RCC>

第二步:前面在设计模式添加了菜单项和图标,下面我们使用代码再来添加一个菜单项,并为其设置图标。在编辑模式打开mainwindow.cpp文件,修改代码,修改后代码如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QAction"
#include "QIcon"
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //QMenu * menu_F = ui->menuBar();

        //创建新的动作
    QAction * openAction = new QAction(("&open"),this);
        //添加图标
        QIcon icon(":/myimages/image/open.png");
        openAction->setIcon(icon);
        //设置快捷键
        openAction->setShortcut(QKeySequence("Ctrl+0"));

        //在文件菜单中设置新的打开动作
      ui->menu->addAction(openAction);
        //创建新的编辑菜单
        QMenu * menu_E = ui->menuBar->addMenu("编辑(&E)");
        QAction * findAction = new QAction(("&find"),this);
        QIcon icon2(":/myimages/image/edit.png");
        findAction->setIcon(icon2);
        findAction->setShortcut(QKeySequence("Ctrl+F"));
        menu_E->addAction(findAction);
}

MainWindow::~MainWindow()
{
    delete ui;
}

注意照片目录应该与相对目录对应
在这里插入图片描述
最终程序运行截图:
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_17616

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值