创建菜单栏,工具栏
QMenu* editMenu = menuBar()->addMenu("edit"); //创建菜单 QToolBar* toolBar = addToolBar("edit"); //创建工具栏 const QIcon icon = QIcon::fromTheme("edit-undo", QIcon(":/images/undo.png")); //加载图标 QAction* undoAction = new QAction(icon, "undo", this); undoAction->setShortcuts(QKeySequence::Undo); undoAction->setStatusTip(""); editMenu->addAction(undoAction); toolBar->addAction(undoAction); menuBar()->addSeparator(); //设置分割线
setShortcuts设置快捷键,比如QKeySequence::Open,可以通过ctrl+o实现这个按钮功能
setStatusTip设置状态栏提示,鼠标放在这个按钮上状态栏会显示提示信息。
另一种创建菜单栏方式:
//两种方式创建菜单栏 //QMenuBar* menu = menuBar(); QMenuBar* menu = new QMenuBar(this); //将菜单栏添加到窗口 setMenuBar(menu); //为每个菜单设置名称 QMenu* file = menu->addMenu("文件"); //创建子菜单 QMenu* zfile = file->addMenu("子文件"); //创建菜单功能 QAction* action = zfile->addAction("打开");
另一种方法创建菜单:QMenu* file = menuBar()->addMenu(tr(“文件”));//这样可以默认已经有菜单栏了,在菜单栏上创建一个文件的菜单。
QMenu插入不同的QAction后可以连接信号槽,点击QMenu里的菜单触发
connect(action, SIGNAL(triggered()), this, SLOT(xxxx()));
还有一种是鼠标点击菜单栏,展开所有菜单时触发信号:
connect(menu, SIGNAL(aboutToShow()), this, SLOT(xxxx()));
鼠标点击菜单栏展示所有菜单,在鼠标离开菜单栏后触发信号:
connect(menu, SIGNAL(aboutToHide()), this, SLOT(xxxx()));