我的Qt学习笔记 4 如何在 QWidget 窗口上d出右键菜单

我的Qt学习笔记 4 如何在 QWidget 窗口上d出右键菜单,第1张

Solution 1 :给一个 QWidget 添加 QActions,设置QWidget 的 contextMenuPolicy 属性为 Qt::ActionsContextMenu 值,使得窗口菜单以这些添加的 QActions 为菜单项组成一个右键菜单。1:MyWidget::MyWidget(QWidget *parent)2:: QWidget(parent)3:{4:setWindowTitle(tr(Context Menu Show 1))5://为窗口添加QActions6:addAction(newQAction(tr(&Open),this))7:addAction(newQAction(QIcon(:/images/mark.png), tr(&Mark),this))8:addAction(newQAction(tr(&Quit),this))9://设置contextMenuPolicy属性值为 '以Actions为d出菜单的菜单项组成菜单'10:setContextMenuPolicy(Qt::ActionsContextMenu)11:}效果:Solution 2 :重写 QWidget 的被保护的虚函数void QWidget::contextMenuEvent (QContextMenuEvent*event)[virtual protected],设置QWidget 的 contextMenuPolicy 属性为 Qt::DefaultContextMenu 值,其实默认就是这个值,不用显示设置。1:MyWidget::MyWidget(QWidget *parent)2:: QWidget(parent)3:{4:setWindowTitle(tr(Context Menu Show 2))5:setContextMenuPolicy(Qt::DefaultContextMenu)//其实不用设置,默认就是这个值6:}7:8:9:voidMyWidget::contextMenuEvent(QContextMenuEvent *event)10:{11:QMenu *menu =newQMenu(this)12:menu-addAction(newQAction(tr(&Open), menu))13:menu-addAction(newQAction(QIcon(:/images/mark.png), tr(&Mark), menu))14:menu-addAction(newQAction(tr(&Quit), menu))15:menu-move(cursor().pos())//让菜单显示的位置在鼠标的坐标上16:menu-show()17:}效果:上面直接是在 contextMenuEvent 函数体里面 new 了个菜单和一些菜单项,这是为了演示。

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不可用

1.新建Qt4 Gui Application工程,将工程命名为MainWindow,其他选项默认即可。

生成的窗口界面如下图。其中最上面的为菜单栏。

2.我们在Type Here那里双击,并输入“文件(&F)”,这样便可将其文件菜单的快捷键设为Alt+F。(注意括号最好用英文半角输入,这样看着美观)

3.输入完按下Enter键确认即可,然后在子菜单中加入“新建(&N)”,确定后,效果如下图。

4.我们在下面的动作编辑窗口可以看到新加的“新建”菜单。

5.双击这一条,可打开它的编辑对话框。我们看到Icon项,这里可以更改“新建”菜单的图标。

6.我们点击后面的...号,进入资源选择器,但现在这里面是空的。所以下面我们需要给该工程添加外部资源。

7.添加资源有两种方法。一种是直接添加系统提供的资源文件,然后选择所需图标。另一种是自己写资源文件。我们主要介绍第一种。新建Qt Resources file,将它命名为menu。其他默认。

8.添加完后如下图。可以看到添加的文件为menu.qrc。

9.我们最好先在工程文件夹里新建一个文件夹,如images,然后将需要的图标文件放到其中。

10.在Qt Creator的menu.qrc文件中,我们点击Add下拉框,选择Add Prefix。我们可以将生成的/new/prefix前缀改为其他名字,如/File。

11.然后再选择Add下拉框,选择Add Files。再d出的对话框中,我们到新建的images文件夹下,将里面的图标文件全部添加过来。

12.添加完成后,我们在Qt Creator的File菜单里选择Save All选项,保存所做的更改。

13.这时再打开资源选择器,可以看到我们的图标都在这里了。(注意:如果不显示,可以按一下上面的Reload按钮)

14.我们将new.png作为“新建”菜单的图标,然后点击Shortcut,并按下Crtl+N,便能将Crtl+N作为“新建”菜单的快捷键。

15.这时打开文件菜单,可以看到“新建”菜单已经有图标了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存