Qt学习之八:菜单栏、工具栏和状态栏

来源:互联网 发布:linux中passwd命令 编辑:程序博客网 时间:2024/04/30 12:37

Qt将用户与界面进行交互的元素抽象为一种“动作”,使用QAction类表示。QAction可以添加到菜单栏、工具栏和状态栏中。
(1) 菜单栏:
使用menuBar函数创建一个菜单栏,menuBar()是QMainWindow提供的函数,这个函数会返回窗口的菜单栏。使用addMenu()函数为其添加菜单。当创建出来菜单对象时,就可以把QAction添加到这个菜单上面,也就是addAction的作用。
(2)工具栏:
QToolBar表示工具栏,使用addToolBar()函数添加新的工具栏。
工具栏可以设置成固定的、浮动的等等。
QAcrion::setStatusTip( ): 设置该动作在状态栏上的提示文本。
(3)状态栏:
QstatusBar表示状态栏。通过statusBar()函数创建状态栏。
C++代码如下:

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QAction>#include <QMenuBar>#include <QMessageBox>#include <QStatusBar>#include <QToolBar>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    openAction = new QAction(QIcon(":/images/doc-open"),tr("&Open..."),this);    openAction->setShortcuts(QKeySequence::Open);    openAction->setStatusTip(tr("Open an existing file"));    connect(openAction,&QAction::triggered,this,&MainWindow::open);    copyAction = new QAction(QIcon(":/images/doc-copy"),tr("&Copy..."),this);    copyAction->setShortcuts(QKeySequence::Copy);    copyAction->setStatusTip(tr("Copy an existing file"));    connect(copyAction,&QAction::triggered,this,&MainWindow::copy);    closeAction = new QAction(QIcon(":/images/doc-close"),tr("&Quit..."),this);    closeAction->setShortcuts(QKeySequence::Close);    closeAction->setStatusTip(tr("Close the software"));    connect(closeAction,&QAction::triggered,this,&MainWindow::close);    QMenu *file = menuBar()->addMenu(tr("&File"));    file->addAction(openAction);    file->addAction(copyAction);    file->addAction(closeAction);    QToolBar *toolBar = addToolBar(tr("&File"));    toolBar->addAction(openAction);    toolBar->addAction(copyAction);    toolBar->addAction(closeAction);    QStatusBar *statusBar = QMainWindow::statusBar();    statusBar->addAction(openAction);    statusBar->addAction(copyAction);    statusBar->addAction(closeAction);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::open(){    QMessageBox::information(this,tr("Information"),tr("Open"));}void MainWindow::copy(){    QMessageBox::information(this,tr("Information"),tr("Copy"));}

在工具栏上参加了打开Open,复制Copy和关闭Close三个动作:
这里写图片描述

在菜单栏中添加了三个动作:
这里写图片描述

0 0
原创粉丝点击