菜单栏工具栏状态栏

Posted Respect@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜单栏工具栏状态栏相关的知识,希望对你有一定的参考价值。

菜单栏、工具栏、状态栏

菜单栏、工具栏、状态栏

主窗口框架拥有自己的布局,包括以下组件:
①菜单栏
菜单栏包含了一个下拉菜单项的列表,这些菜单项通过QAction动作类实现。一个主窗口只能有一个菜单栏。
②工具栏
工具栏一般用于显示常用的菜单项,也可插入其他窗口部件,一个主窗口可以拥有多个工具栏。
③中心部件
主窗口中心区域可以放入一个窗口部件作为中心部件,是应用程序的主要功能实现区域,一个主窗口只能有一个中心部件。
④dock部件
Dock部件又称停靠部件,或停靠窗口,可停靠在窗口部件的四周,用来设置一些部件来实现一些功能,类似一个工具箱,一个主窗口可拥有多个Dock部件。
⑤状态栏
状态栏用于显示程序的一些状态信息,在主窗口的最底下,一个主窗口只能拥有一个状态栏。

demo:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QToolButton>
#include <QSpinBox>
#include <QLabel>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //菜单
    QMenu *editMenu = ui->menuBar->addMenu("编辑(&E)");

    QAction *action_copy = editMenu->addAction(QIcon("copy.png"),QString("复制(&C)"));
    action_copy->setShortcut(QKeySequence("Ctrl + C"));

    //工具栏添加动作按钮
    ui->mainToolBar->addAction(action_copy);

    //动作加入分组
    QActionGroup *group = new QActionGroup(this);
    QAction *action_L = group->addAction("左对齐(&L)");
    QAction *action_R = group->addAction("右对齐(&R)");
    QAction *action_C = group->addAction("居中对齐(&C)");
    QAction *action_J = group->addAction("两端对齐(&J)");

    action_L->setCheckable(true);
    action_R->setCheckable(true);
    action_C->setCheckable(true);
    action_J->setCheckable(true);

    editMenu->addSeparator();//菜单栏中添加分隔线
    editMenu->addAction(action_L);
    editMenu->addAction(action_R);
    editMenu->addAction(action_C);
    editMenu->addAction(action_J);

    //工具栏添加部件
    QToolButton *toolBtn = new QToolButton(this);
    toolBtn->setText("颜色");

    //工具按钮设置菜单
    QMenu *colorMenu = new QMenu(this);
    colorMenu->addAction("红色");
    colorMenu->addAction("绿色");
    toolBtn->setMenu(colorMenu);
    //弹出式菜单
    toolBtn->setPopupMode(QToolButton::MenuButtonPopup);

    ui->mainToolBar->addWidget(toolBtn);


    QSpinBox *spinBox = new QSpinBox(this);
    ui->mainToolBar->addWidget(spinBox);

    //状态栏显示临时信息
    ui->statusBar->showMessage(QString("欢迎。。。"),3000);

    //状态栏添加永久性部件
    QLabel *tag = new QLabel("www.qiniuxueyuan.com");
    ui->statusBar->addPermanentWidget(tag);

}

MainWindow::~MainWindow()
{
    delete ui;
}

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

以上是关于菜单栏工具栏状态栏的主要内容,如果未能解决你的问题,请参考以下文章

网页的菜单栏、地址栏、状态栏都变成黑色的了,怎么回事?

如何恢复EXCEL菜单栏和工具栏的默认状态

Python Qt GUI设计:菜单栏工具栏和状态栏的使用方法(拓展篇—2)

Python Qt GUI设计:菜单栏工具栏和状态栏的使用方法(拓展篇—2)

VC++程序设计与应用--菜单工具栏与状态栏

Android:工具栏状态栏重叠