工具栏按钮:
采用ToolBar直接建立工具栏按钮,一般一排连续的几个按钮可使用一个ToolBar的不同Action进行分配,一个Action对应着一个按钮;若是有两个ToolBar,则之间会有分隔(竖线右侧带点),属于不同的两部分。此外还可以通过toolBar->addSeparator添加分隔符,将不同操作分开。
按钮的图标可通过Action进行插入,注意图片要先导入资源中,再输入资源的路径进行调用,如:
添加Action时可通过toolBar->addAction的返回值进行新Action的创建,依照addAction的顺序确定了工具栏按钮的左右顺序。最后,通过点击可发出triggered()信号,进而连接槽函数,执行相应操作。
工具栏菜单:
采用ToolButton作为外观,通过toolBar->addWidget()添加到工具栏中,菜单部分需要单独建立一个QMenu,进行选项设计以及信号连接,再通过toolButton->setMenu()将菜单添加到按钮中,这样点击按钮之后就可以弹出菜单,弹出延时可通过toolButton->setPopupMode()进行设置。
QMenu的选项可通过QActionGroup进行设计,QActionGroup每添加(addAction)一个新的Action,菜单中就会添加一个选项;点击菜单中的选项可发出triggered(QAction*)的信号,连接到槽函数中,通过QActionGroup *group = qobject_cast<QActionGroup*>(sender());进行信号的接收,再由group->actions().indexOf(act)(act是传入的QAction*)获取选项的索引(也就是第几项),继而进行自己的操作。
原文:https://blog.csdn.net/huster_xdw/article/details/83375505