QT菜单栏学习

38 篇文章 1 订阅
32 篇文章 0 订阅

在添加<<  点击打开链接>>中,学习了怎么为菜单栏添加动作,在类的构造函数中将内容修改为

setWindowTitle(tr("Mian Window"));
openAction = new QAction(QIcon(":/images/ICon"),tr("&Open..."), this);

openAction->setShortcut(QKeySequence::Open);
openAction->setStatusTip(tr(" Open existed file "));

connect(openAction, &QAction::triggered, this, &QTTest::Open);

QMenu *file = menuBar()->addMenu(tr("&File"));
file->addAction(openAction);


QMenu *file2 = menuBar()->addMenu(tr("&HELLO"));
file2->addAction(openAction);


QToolBar *toolBar = addToolBar(tr("&File"));
toolBar->addAction(openAction);

statusBar(); 

新加了一句:

QMenu *file2 = menuBar()->addMenu(tr("&HELLO"));
file2->addAction(openAction);

使用menuBar()函数,Qt 为我们创建了一个菜单栏。menuBar()QMainWindow提供的函数,因此你是不会在QWidget或者QDialog中找到它的。这个函数会返回窗口的菜单栏,如果没有菜单栏则会新创建一个。这也就解释了,为什么我们可以直接使用menuBar()函数的返回值,毕竟我们并没有创建一个菜单栏对象啊!原来,这就是menuBar()为我们创建好并且返回了的。

Qt 中,表示菜单的类是QMenuBar(你应该已经想到这个名字了)。QMenuBar代表的是窗口最上方的一条菜单栏。我们使用其addMenu()函数为其添加菜单。尽管我们只是提供了一个字符串作为参数,但是 Qt 为将其作为新创建的菜单的文本显示出来。至于 & 符号,我们已经解释过,这可以为菜单创建一个快捷键。当我们创建出来了菜单对象时,就可以把QAction添加到这个菜单上面,也就是addAction()函数的作用。

这样子便可以完成两个菜单完成同一个功能的界面,当然实现不一样的功能就需要做不一样的openAction,并作不同的connetion便可实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值