qmenubar qtoolbar qaction记录

qt中qaction用来抽象的表示一个动作,它包括行为、属性等参数。比较特殊的就是这个去action是随着不同的宿主而自动产生变化去适应的。下面会说到。

qmenu是qt中菜单,按理说在这之前应该先存在一个qmenubar,的确,只不过在qmainwindow的头文件中已经默认了一个menuBar函数,当mainwindow中不存在menubar时该函数会自动创建并(如果menubar已经存在则直接)返回一个menubar的指针,我们通过这个指针来对菜单栏进行操作,比如添加一个菜单项我们可以这样:

 

    //    QMenu *file = menuBar()->addMenu(tr("&file"));//QMainWindow中的menubar函数返回创建好的menubar的指针,可分解为如下两行
          QMenuBar *mymenubar=menuBar();
          QMenu *file =mymenubar->addMenu("file");

上面一行和下面两行的作用是一样的。此时我们通过(假设openAction是预先定义好的一个QAction实例)

 

 

          file->addAction(openAction);

将openAction动作加入到file菜单中,他就成了file下的一个可执行动作(Open...)
 

 

现在来创建一个toolbar

 

    QToolBar *toolBar = addToolBar(tr("&tool"));//QMainWindow中默认创建了一个toolbar
    toolBar->addAction(openAction);

只不过这次是把openAction动作添加到工具栏中,那它将会是这个样子

 

这就是最开始提到的qaction动作会随着宿主的不同而自动适应去变化。

 

 

注:

1.菜单栏包括n个菜单,每个菜单又包含n各动作,所以创建菜单栏后-创建菜单-创建动作。

工具栏没有二级菜单,所以动作直接通过按钮的样式显示在toolbar上,也就是创建工具栏后-创建动作。

 

2.创建子菜单的方法:

 

 

             QMenuBar *mymenubar=menuBar();
             QMenu *file =mymenubar->addMenu("file");
             QMenu *subfile =file->addMenu("subfile");
             QMenu *sub2file =subfile->addMenu("subfile");

其中file是在菜单栏上的一级菜单,subfile是file中的子菜单,而sub2file则又是subfile的子菜单,结构如图所示

 


 

 

 


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值