作者:kakaka2011
转自:http://blog.csdn.net/love_gaohz/article/details/10191685
Qt mainWindow添加状态栏,菜单栏,工具栏的Action方法
- //new 一个QAction
- openAction = new QAction(tr("&Open"), this);
- openAction->setShortcut(QKeySequence::Open);//添加快捷方式
- openAction->setStatusTip(tr("Open a file."));//将鼠标移动到工具条或者菜单的 QAction上,状态栏就会有相应的提示
- openAction->setIcon(QIcon(":/images/UI_UI_BMP_FILE_SELECTOR_DISABLED_DIRECTORY.png"));
- connect(openAction,SIGNAL(triggered()),this,SLOT(open()));
- /*QStatusBar继承自QWidget,因此它可以添加其他的QWidget。添加一个label为状态栏
- *QMainWindow类里面就有一个statusBar()函数,用于实现状态栏的调用。
- *类似menuBar()函数,如果不存在状态栏,该函数会自动 创建一个,如果已经创建则会返回这个状态栏的指针。如果你要替换掉已经存在的状态栏,
- 需要使用QMainWindow的setStatusBar()函 数
- */
- msgLabel = new QLabel;
- msgLabel->setMaximumSize(msgLabel->sizeHint());
- msgLabel->setAlignment(Qt::AlignHCenter);
- statusBar()->addWidget(msgLabel);
- statusBar()->setStyleSheet(QString("QStatusBar::item{border: 0px}"));
- /*
- *QMainWindow有一个menuBar()函数,会返回菜单栏,。如果不存在会自动创建,如果已经存在就返回那个菜 单栏的指针。
- *直接使用返回值添加一个菜单,也就是addMenu,参数是一个QString,也就是显示的菜单名字。然后使用这个QMenu指针添加这个QAction。
- */
- QMenu *file = menuBar()->addMenu(tr("&File"));
- file->addAction(openAction);
- /*
- *使用addToolBar函数的返回值添加了一个工具条,并且把这个QAction添加到了上面。
- */
- QToolBar *toolBar = addToolBar(tr("&File"));
- toolBar->addAction(openAction);
我们可以用
QStatusBar * QMainWindow::statusBar() const
这个函数替代上面
msgLabel=newQLabel;
msgLabel->setMaximumSize(msgLabel->sizeHint());
msgLabel->setAlignment(Qt::AlignHCenter);
statusBar()->addWidget(msgLabel);
statusBar()->setStyleSheet(QString("QStatusBar::item{border: 0px}"));
(这些代码是在状态栏上加上一个label)
这些代码。在最后toolBar->addAction(openAction);后加上statusBar();
这个函数的意义就是:Returns the status bar for the main window. This function creates and returns an empty status bar if the status bar does not exist.