Qt入门 工具栏QToolBar和菜单栏QMenuBar(六)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010468553/article/details/79664064

只有在继承了QMainWindow的窗体,才会有this->menuBar()->addMenu();以及this->addToolBar()函数。

Qmune

QMuneQMenuBar之间的关系见下面的代码。

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

在声明Qmune之前需要先声明几个QActionQAction用来抽象的表示一个动作,它包括行为、属性等参数:

//创建打开文件动作  
fileOpenAction = new QAction(QIcon(tr("images/open.ico")), tr("Open File"), this);
//设置打开文件动作的快捷键  
fileOpenAction->setShortcut(tr("Ctrl + O"));
//设置打开文件动作的提示信息  
fileOpenAction->setStatusTip(tr("open the file"));
//关联打开文件动作的信号和槽  
connect(fileOpenAction, SIGNAL(triggered()), this, SLOT(fileOpenActionSlot()));

然后将QAction添加到Qmune中:

void ZWindow::createMenu()
{
    menu = this->menuBar()->addMenu(tr("file"));
    menu->addAction(fileOpenAction);
    menu->addAction(lutFileOpenAction);
    menu->addAction(fileSaveAction);

    menu = this->menuBar()->addMenu(tr("shader"));
    menu->addAction(vertfileChangeAction);
    menu->addAction(fragfileChangeAction);

    menu = this->menuBar()->addMenu(tr("Effect"));
    menu->addAction(EffecChangeAction1);
    menu->addAction(EffecChangeAction2);
    menu->addAction(EffecChangeAction3);
    menu->addAction(EffecChangeAction4);
    menu->addAction(EffecChangeAction5);
}

上段代码创建的Mune见下图:
这里写图片描述

QToolBar

QMune不同,QToolBar出现的地方在菜单栏的下面,其初始化以及添加动作的代码见下图:

toolbar = this->addToolBar(tr("file"));
toolbar->addAction(fileOpenAction);
toolbar->addAction(lutFileOpenAction);
toolbar->addAction(fileSaveAction);

toolbar= this->addToolBar(tr("shader"));
toolbar->addAction(vertfileChangeAction);
toolbar->addAction(fragfileChangeAction);

toolbar= this->addToolBar(tr("Effect"));
toolbar->addAction(EffecChangeAction1);
toolbar->addAction(EffecChangeAction2);
toolbar->addAction(EffecChangeAction3);
toolbar->addAction(EffecChangeAction4);
toolbar->addAction(EffecChangeAction5);

其效果图见下图:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u010468553/article/details/79664064