QT 设置菜单图标

目录


一、添加主窗口菜单

二、添加菜单图标

三、添加资源文件

四、使用资源文件

五、使用代码来添加菜单和图标

正文


一、添加主窗口菜单

1.新建Qt Gui应用,项目名称为myMainWindow,基类选择QMainWindow,类名为MainWindow。

2.创建完项目后,打开mainwindow.ui文件进入设计模式。在这里可以看到界面左上角的“在这里输入”,我们可以在这里添加菜单。双击“在这里输入”,将其更改为“文件(&F)”,然后按下回车键,效果如下图所示。这里的&F表明将菜单的快捷键设置为了Alt+ F,可以看到,实际的显示效果中&符号是隐藏的。

<ignore_js_op>

3.同样的方法,我们在文件菜单中添加“新建(&N)”子菜单,效果如下图所示。菜单后面的那个加号图标是用来创建下一级菜单的。

<ignore_js_op>

二、添加菜单图标

1.Qt中的一个菜单被看做是一个Action,我们在下面的Action编辑器中可以看到刚才添加的“新建”菜单,如下图所示。

<ignore_js_op>

2.双击该条目,会弹出编辑动作对话框,这里可以进行各项设置,比如我们可以设置菜单的快捷键,点击一下快捷键后面的行编辑器,然后按下键盘上的Ctrl + N,这样就可以将该菜单的快捷键设置为Ctrl + N。如下图所示。那么大家可能会问,既然该菜单的快捷键是这么设置的,那么前面设置的“新建(N)”中的N是什么呢?这个可以被称为加速键,就是只有当文件菜单处于激活(显示)状态时,按下N键才会执行新建菜单的功能。

<ignore_js_op>

3.在编辑动作对话框中的图标后面的 <ignore_js_op> 黑色箭头下拉框可以选择使用资源还是使用文件,如果使用文件的话,那么就可以直接在弹出的文件对话框中选择本地磁盘上的一个图标文件。下面我们来讲述使用资源的方式,如果直接点击这个按钮就是默认的使用资源。现在我们先按下编辑动作对话框的确定按钮关闭它。

三、添加资源文件

1.Qt中可以使用资源文件将各种类型的文件添加到最终生成的可执行文件中,这样就可以避免使用外部文件可能出现的一些问题。而且,在编译时Qt还会将资源文件进行压缩,我们可能发现生成的可执行文件比我们添加到其中的资源文件还要小。

2.我们向项目中添加新文件,模板选择Qt资源文件。如下图所示。然后将名称设置为myResources。

<ignore_js_op>

3.创建完文件后会自动打开该资源文件,这里需要先在下面添加前缀,就是点击添加按钮,然后选择前缀,默认的前缀是“/new/prefix1”,这个可以随意修改(不要出现中文字符),我们这里因为要添加图片,所以修改为/myImages。然后再按下添加按钮来添加文件,这里最好将所有要用到的图片放到项目目录中。比如我们这里在项目目录中新建了一个images文件夹,然后将需要的图标文件粘贴进去。添加完文件后,如下图所示。

<ignore_js_op>

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

四、使用资源文件

1.我们重新到设计模式打开新建菜单的编辑动作对话框,然后添加图标。在打开的选择资源对话框中,第一次可能无法显示已经存在的资源,可以按下左上角的绿箭头来更新显示。效果如下图所示。

<ignore_js_op>

2.我们点击这里需要的新建图标filenew.png,按下确定即可。现在按下Ctrl + R键运行程序,效果如下图所示。

<ignore_js_op>

五、使用代码来添加菜单和图标

1.对于添加的资源文件,在项目目录中可以看到,即myResources.qrc,使用写字板程序将其打开,可以发现它其实就是一个XML文档:

<RCC>

<qresourceprefix="/myImages">

<file>images/filenew.png</file>

<file>images/fileopen.png</file>

<file>images/filesave.png</file>

<file>images/filesaveas.png</file>

<file>images/find.png</file>

</qresource>

</RCC>

2.前面是在设计模式添加的图标文件,下面我们使用代码再来添加一个菜单,并为其设置图标。在编辑模式打开mainwindow.cpp文件,并在构造函数中添加如下代码:

// 创建新的动作

QAction *openAction = new QAction(tr("&Open"), this);

// 添加图标

QIcon icon(":/myImages/images/fileopen.png");

openAction->setIcon(icon);

// 设置快捷键

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

// 在文件菜单中设置新的打开动作

ui->menu_F->addAction(openAction);

这里添加图标时,就是使用的资源文件中的图标。使用资源文件,需要在最开始使用冒号,然后添加前缀,后面是文件的路径。在代码中使用文件菜单,就是使用其objectName。大家现在可以运行程序查看效果,当然这里也可以将Open改为中文。

结语


这一篇中主要讲解了如何使用资源文件,讲述了在设计模式和代码中两种使用方法。希望大家可以亲自练习一下本篇的内容,在后面的章节中,对于添加菜单和图标等操作将不再进行讲解

时间: 2024-11-08 18:16:42

QT 设置菜单图标的相关文章

Qt 设置按钮透明、图标、移动到按钮和状态栏提示等各种属性

QPushButton *leftToRightBtn = new QPushButton;     leftToRightBtn->setToolTip(tr("Transfer File(s) from Left to Right"));     leftToRightBtn->setFlat(true);     leftToRightBtn->setIcon(QIcon(":/images/rightarrow.png"));     le

qt中设置菜单高度

如题所示,我建立一个菜单,代码如下,但是菜单项的高度太小了, { popupMenu = new QMenu(this); QAction *action1 = new QAction(tr("&New1"), this); QAction *action2 = new QAction(tr("&New2"), this); QAction *action3 = new QAction(tr("&New3"), this)

qt之菜单项定制

qt实现菜单,简单的界面QMenu+QAction完全可以实现,在加上qss的支持,可以定制出比较美观的菜单,qt的菜单一般用在托盘.按钮和工具栏上. 当然啦,也有很多软件有比较美观的托盘菜单,比如360.电脑管家等软件,效果图如图1所示,其实qt在4.2之后也提供了定制菜单的功能,使用QWidgetAction可以定制出自己想要的菜单来,接下来是我定制菜单栏的步骤. 图1 360图盘菜单 实现效果如下图2所示,菜单是由单个条目组成的,每一个条目又由左右两部分组成,左边是一个图标,并伴有底色,右

笔记:QT的菜单

1.创建菜单栏和菜单 1 QMenuBar *menuBar = new QMenuBar(this); 2 QMenu *file = menuBar->addMenu("&file");//用&来指定快捷键 3 file->addAction("新建"); 2.创建可选择的菜单 1 QAction *newFile = file->addAction("打开(&O)"); 2 newFile->

Android:自己定义PopupMenu的样式(显示图标/设置RadioButton图标)

PopupMenu是Android中一个十分轻量级的组件.与PopupWindow相比,PopupMenu的可自己定义的能力较小,但使用更加方便. 先上效果图: 本例要实现的功能例如以下: 1.强制显示菜单项的图标. 默认状态下.PopupMenu的图标是不显示的.而且Android没有为我们开放不论什么API去设置它的显示状态.为了显示菜单项的图标,能够自己重写PopupMenu并改动相关属性,也能够直接使用反射: try { Field field = popupMenu.getClass(

如何使用FL Studio通道设置菜单

我们在FL Studio"通道设置按钮"上右击鼠标就会弹出一个设置菜单,它包含了通道操作的各种常用命令.下文小编将会为大家详细讲解这些命令的具体作用,一起来学习吧! 1.首先,我们来看一下这些常用的命令,如下图: 2.在上图中,我们可以看到通道设置的第一个命令是钢琴卷轴.它的作用是将音符发送到钢琴卷轴或打开钢琴卷轴.当没有音符被发送到钢琴卷轴中时,它显示的是"发送到钢琴卷轴":当已经有音符发送到钢琴卷轴中时则显示"钢琴卷轴". 3.重命名/着色,

QT添加程序图标及窗口图标

程序图标 材料准备 图标文件:*.ico文件,存放在源文件同一目录下,如"myapp.ico" 写入图标 向*.pro文件中,独立一行写入"RC_ICONS = *.ico",如RC_ICONS = "myapp.ico" 生成程序 运行程序,即可在程序目录下看到带有图标的软件 PS:还有一种使用rc文件的方法,有一篇博文写的挺详尽的了,此处不再累赘,可参考Qt笔记——三步设置Qt应用程序图标. 更多程序图标添加方式,可在帮助中输入"S

visual Studio 2017 扩展开发(二)《菜单图标详解》

在上一篇我们在菜单栏创建了一个菜单,菜单上显示了一个图标跟文本.那么我们自己创建的菜单如何修改自定义的菜单图标呢.下面娓娓道来..... 首先你要有一个图,创建一个32位的位图.这个位图的像素是16px 16px,或者是16px 16px的倍数. 每个图标都放在单个行中彼此相邻的位图上.使用Alpha通道在每个图标中指示透明的位置.如果使用8位颜色深度,请使用RGB(255,0,255)作为透明度.32位彩色图标是首选. 将图标文件复制到项目的Resources文件夹下. 打开command.p

Android:自定义PopupMenu的样式(显示图标/设置RadioButton图标)

PopupMenu是Android中一个十分轻量级的组件.与PopupWindow相比,PopupMenu的可自定义的能力较小,但使用更加方便. 先上效果图: 本例要实现的功能如下: 1.强制显示菜单项的图标. 默认状态下,PopupMenu的图标是不显示的,并且Android没有为我们开放任何API去设置它的显示状态.为了显示菜单项的图标,可以自己重写PopupMenu并修改相关属性,也可以直接使用反射: try { Field field = popupMenu.getClass().get