qt如何给menu的下拉菜单添加响应事件

qt如何给menu的下拉菜单添加响应事件,第1张

1、创建菜单里可以通过menuBar方法,这个方法好像是QWiget的方法

QMenuBar *mBar = menuBar()

2、添加菜单

QMenu * menu = mBar->addMenu("文件")

3、添加菜单项

QAction * action = menu->addAction("新建")

4、给QAction创建点击事件

connect(action ,&QAction::triggered ,this ,[=](){

//里面写点击后执行的函数就行

})

5、设置QAction不可用

主窗口MainWindow需要菜单栏QMenuBar及菜单QMenu来组成自身,一般应用程序的所有功能都能在菜单中找到。

它添加了很多动作QAction,并用自身组成了菜单栏QMenuBar上的菜单,当然也可用于基它地方,如上下文菜单等。

公有函数如下:

aboutToHide:此信号在菜单对用户隐藏之前发出。

aboutToShow:此信号在菜单显示给用户之前发出。

hovered:此信号在菜单动作突出显示时发出;该动作是导致信号发出的动作。通常用于更新状态信息。

triggered:此信号在触发此菜单中的 *** 作时发出。该动作是导致信号发出的动作。

通常,每个菜单动作的已触发信号连接到其自己的自定义槽,但有时您会希望将多个动作连接到单个槽,例如,当您有一组密切相关的动作时,例如“左对齐”、“中对齐”、“右对齐”。

注意:此信号是为层次结构中的主父菜单发出的。因此,只需要将父菜单连接到插槽;不需要连接子菜单。

静态成员函数,可用它将一些actions组合成一个菜单

它是主窗口存放菜单的地方。

在windows上可认为它就是那个大理石颜色的一栏

函数如下:

简单测试示例如下:

一、创建动作

1

在Qt中,菜单项和工具栏的工具按钮的实现都是依靠“动作”来完成的。所谓动作,顾名思义,就是用来完成某项任务的行动序列。Qt中的动作对应的是QAction类。

2

要想创建一个工具栏,我们首先需要创建好想要放在工具栏上的项目,也就是各个“动作”。

要创建“动作”,我们需要在工程中打开界面文件(即ui文件),然后点击下方的“新建”按钮。

3

接着,在d出的“新建动作”窗口填写相应的项目。

1)文本,即动作显示的名称。比如“新建”、“保存”等

2)对象名称,即动作对象本身的名称,以便用来引用该对象

3)ToolTip,即工具提示

4

4)图标

要想在工具栏显示图标,必须为相应的动作添加图标。而要想在动作中添加图标,我们首先需要在Qt中添加资源文件,将图标文件添加到资源文件中。关于在Qt中添加资源文件的方法,可以搜索并参考我的经验《Qt怎样添加资源》,在此就不再多说了。

当已经添加好图标资源后,点击菜单“文件”-“保存所有文件”。然后,我们再次打开创建好的动作,点击上面带...的按钮,然后在d出的资源对话框中将相应的图标加进来。

在此提醒大家,添加资源后,一定要先点击“保存所有文件”将资源文件保存,否则你添加的图标文件有可能显示不出来。

5

5)快捷键

要为动作添加快捷键,首先需要将鼠标在快捷键框内点击一下,以便将焦点定位到快捷键(注意,不会有任何显示),然后再在键盘上按下相应的快捷键。这时,框内便会显示你按下的快捷键。

6

动作的各个项设置好之后,点击OK完成。再依照2~5步相同的方法,创建好其他要在工具栏上显示的动作。作为示例,在此我就不再创建其他动作了,因为方法是一样的。

END

二、将动作添加到工具栏

1

现在,如果我们想将相应的动作放到工具栏上,只需要用鼠标将相应的动作拖动到工具栏上就可以了。

2

现在,相应动作的图标就已经成功在工具栏上显示出来了。是不是非常容易呢?


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11962447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存