8.Qt 第一个QMainWindow程序

我们新建一个项目,在文件继承上选择QMainWindow。

1、简介

QMainWindows是一个为用户提供窗口的程序类,包含菜单栏(menuBar)、多个工具栏(QToolBar)、多个铆接部件(浮动窗口)、一个状态栏及一个中心部件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-diaJdInO-1585318834737)(D:\java\myNote\image\qt237.png)]

2、组成

  1. 菜单栏

    • 最多一个,在窗口的顶部。
    • 有系统默认的。
  2. 工具栏

    • 工具栏可以有多个。
    • 可以放在上下左右4个位置。
  3. 状态栏

    • 最多一个。
    • 在窗口的底部。
    • 有系统默认的。
  4. 铆接部件 浮动部件

    • 可以有多个。
    • 有上下左右4个位置。
    • 围绕核心部件。
  5. 核心部件

    • 最多一个

3、代码测试

#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //重制窗口大小
    resize(600,400);

    //菜单栏的创建 menuBar是系统本身的
    QMenuBar* bar = menuBar();
    //将菜单栏加入窗口,若是空栏,什么都不显示
    setMenuBar(bar);

    //创建菜单
    QMenu* fileMenu = bar->addMenu("文件");
    QMenu* editMenu = bar->addMenu("编辑");
    QMenu* buildMenu = bar->addMenu("构建");

    //创建菜单项
    fileMenu->addAction("新建文件或项目");
    //添加分割线
    fileMenu->addSeparator();
    fileMenu->addAction("打开文件或项目");

    //创建工具栏,可以有多个,默认不添加到窗口中
    QToolBar* toolBar = new QToolBar(this);
    //addToolBar(toolBar);
    //添加停靠区域
    addToolBar(Qt::LeftToolBarArea,toolBar);
    //后期设置只允许左右停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
    //设置禁止浮动
    toolBar->setFloatable(false);
    //设置禁止移动
    toolBar->setMovable(false);
    //设置内容
    toolBar->addAction("欢迎");
    toolBar->addAction("编辑");
    toolBar->addSeparator();
    toolBar->addAction("debug");
    //工具栏添加控件
    QPushButton* btn = new QPushButton("运行",this);
    toolBar->addWidget(btn);

    //状态栏 最多一个
    //使用系统提供的状态栏
    QStatusBar* statusBar1 = statusBar();
    //设置到窗口中
    setStatusBar(statusBar1);
    //放标签控件
    QLabel* label = new QLabel("字数",this);
    statusBar1->addWidget(label);
    QLabel* label2 = new QLabel("反馈",this);
    statusBar1->addPermanentWidget(label2);

    //铆接部件 可以有多个
    QDockWidget* dock = new QDockWidget("运行情况",this);
    //放在核心的下面
    addDockWidget(Qt::BottomDockWidgetArea,dock);
    //设置后期停靠只允许上下
    dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);

    //设置中心部件 只能有一个
    QTextEdit* edit = new QTextEdit();
    setCentralWidget(edit);
}

MainWindow::~MainWindow()
{

}

4、运行

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值