Qt入门超级简单小项目(2)添加菜单图标

本文详细指导如何在Windows10环境下使用Qt5创建QtWidgetsApplication,包括添加菜单项、设置快捷键、插入图标,以及通过资源文件管理和使用。从设计模式到代码实现,一步步教你完成菜单栏定制。
摘要由CSDN通过智能技术生成

环境:windows10+Qt5
添加主窗口菜单
1.新建Qt Widgets Application,项目名称为mymainwindow,基类选择QMainWindow,类名为MainWindow。
2.创建完项目后,双击mainwindow.ui文件进入设计模式。在这里可以看到界面左上角的“在这里输入”,我们可以在这里添加菜单。双击“在这里输入”,将其更改为“文件(&F)”,然后按下回车键。这里的&F表明将菜单的快捷键设置为了Alt+ F,可以看到,实际的显示效果中&符号是隐藏的。
在这里插入图片描述
在这里插入图片描述
3.同样,我们在文件菜单中添加“新建(&N)”子菜单,效果如下图所示。菜单后面的那个加号图标是用来创建下一级菜单的。(PS:菜单中如果无法输入中文,可以从别处复制粘贴)
在这里插入图片描述
添加菜单图标
1.Qt中的一个菜单被看做是一个Action,我们在下面的Action编辑器(Action Editor)中可以看到刚才添加的“新建”菜单
在这里插入图片描述
2.双击该条目,会弹出编辑动作对话框,这里可以进行各项设置,比如我们可以设置菜单项的快捷键,点击一下Shortcut后面的行编辑器,然后按下键盘上的Ctrl + N,这样就可以将该菜单项的快捷键设置为Ctrl + N。如下图所示。那么大家可能会问,既然该菜单项的快捷键是这么设置的,那么菜单项名称“新建(N)”中的N是什么呢?这个可以被称为加速键,就是只有当文件菜单处于激活(显示)状态时,按下N键才会执行新建菜单的功能。
在这里插入图片描述

添加资源文件
1.我们向项目中添加新文件,模板选择Qt分类中的Qt资源文件(Qt Resource File)。如下图所示。然后将名称设置为myicon。
在这里插入图片描述
2.添加完文件后会自动打开该资源文件,需要先添加前缀,点击“添加”按钮,然后选择“添加前缀”,默认的前缀是“/new/prefix1”,这个可以随意修改(不要出现中文字符),我们这里因为要添加图片,所以修改为“/myimages”。然后再按下添加按钮来添加文件,这里最好将所有要用到的图片放到项目目录中。比如这里在项目目录中新建了一个images文件夹,然后将需要的图标文件粘贴进去。添加完文件后,如下图所示。
常用图标资源地址:
百度网盘
链接:https://pan.baidu.com/s/12In5rL860d-W_c7mGvL2Dg
提取码:u1wc
–来自百度网盘超级会员V4的分享

4.当添加完资源后,一定要按下Ctrl + S来保存资源文件,不然在后面可能无法显示已经添加的资源。

使用资源文件
回到设计模式打开新建菜单的编辑动作对话框,然后添加图标。在打开的选择资源对话框中,第一次可能无法显示已经存在的资源,可以按下左上角的绿箭头来更新显示。
在这里插入图片描述
在这里插入图片描述
显示如下效果:
在这里插入图片描述
之后可以ctrl+R试验效果

使用代码来添加菜单和图标
1.前面在设计模式添加了菜单项和图标,下面我们使用代码再来添加一个菜单项,并为其设置图标。在编辑模式打开mainwindow.cpp文件,并在构造函数中添加如下图所示代码:
#include “mainwindow.h”
#include “ui_mainwindow.h”

MainWindow::MainWindow(QWidget *parent)
QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QAction *openAction = new QAction(tr("&Open"),this);

QIcon icon("://myimages/actions/fileopen.png");
openAction->setIcon(icon);

openAction->setShortcut(QKeySequence(tr("Ctrl+0")));

ui->menu_F->addAction(openAction);

QMenu *menu_E = ui->menubar->addMenu(tr("编辑(&E)"));
QAction *findAction = new QAction(tr("&Find"),this);
QIcon icon2("://myimages/actions/find.png");
findAction->setIcon(icon2);
findAction->setShortcut(QKeySequence(tr("Ctrl+F")));
menu_E->addAction(findAction);

}

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

最后运行就可以了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值