QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。
练习:用代码创建窗口,包含菜单栏、状态栏、工具栏、铆接部件、中心部件等。
#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
//重置窗口大小
this->resize(1200,800);
//创建菜单栏
QMenuBar * bar = new QMenuBar;
this->setMenuBar(bar);
//创建菜单,只能有一个
QMenu *file = bar->addMenu("文件");
QMenu *edit = bar->addMenu("编辑");
QMenu *build = bar->addMenu("构建");
//添加菜单项
file->addAction("新建");
file->addAction("打开");
//添加分割线
file->addSeparator();
file->addAction("关闭");
//工具栏 可以有多个
QToolBar * toolbar = new QToolBar(this);
//将toolbar添加到窗口,设置左停靠位置
this->addToolBar(Qt::LeftToolBarArea, toolbar);
//设置可停靠位置
toolbar->setAllowedAreas(Qt::RightToolBarArea | Qt::LeftToolBarArea);
//设置浮动
toolbar->setFloatable(false);
//是否可移动,设置为否时工具栏固定不能动
toolbar->setMovable(false);
//工具栏添加内容
toolbar->addAction("欢迎");
toolbar->addAction("编辑");
//添加分隔线
toolbar->addSeparator();
toolbar->addAction("设计");
toolbar->addAction("调试");
//添加按钮
QPushButton * btn = new QPushButton("帮助",this);
toolbar->addWidget(btn);
//状态栏,最多有一个
QStatusBar * stabar = new QStatusBar();
//将状态栏添加到窗口
this->setStatusBar(stabar);
//添加标签控件
QLabel * label_1 = new QLabel("问题",this);
QLabel * label_2 = new QLabel("概要信息",this);
QLabel * label_3 = new QLabel("右侧提示信息",this);
stabar->addWidget(label_1);
stabar->addWidget(label_2);
//标签在右边显示
stabar->addPermanentWidget(label_3);
//设置中心部件
QTextEdit * qedit = new QTextEdit(this);
this->setCentralWidget(qedit);
//铆接部件,可以有多个
QDockWidget * dock = new QDockWidget("浮动窗口",this);
this->addDockWidget(Qt::BottomDockWidgetArea,dock);
//设置后期停靠区域,只允许上下
dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
}
MainWindow::~MainWindow()
{
}
运行效果: