【C++入门学习】——MainWindow

1.未写入代码时窗口如下:

在这里插入图片描述

2.添加菜单栏前需要增加的头文件:

#include <QMenuBar>

在这里插入图片描述

3.创建菜单栏:

注意所创建的菜单栏是空菜单栏,也就是说创建之后,菜单栏上没有任何内容。

    //创建一个空菜单栏,菜单栏只能有一个
    QMenuBar *bar1=menuBar();
    //将菜单栏放置于所创建的窗口上
    setMenuBar(bar1);

在这里插入图片描述

4.在菜单栏上创建内容:

//创建菜单,添加内容到菜单栏上,FileMenu等为该菜单的返回值
    QMenu *fileMenu=bar1->addMenu("File");

在这里插入图片描述

5.创建菜单项

    //创建菜单项
    fileMenu->addAction("新建");
    fileMenu->addAction("打开");
    fileMenu->addAction("退出");

在这里插入图片描述

6.添加分割线:

    //添加分割线
    fileMenu->addSeparator();

在这里插入图片描述

7.创建工具栏:

    //创建工具栏
    QToolBar *bar2=new QToolBar(this);
    addToolBar(bar2);

在这里插入图片描述

8.改变工具栏的位置;

工具栏位置表示:
在这里插入图片描述

如:将工具栏置于左侧:

    //设定工具栏的位置,如左侧,第二个参数为被设置的工具栏
    addToolBar(Qt::LeftToolBarArea,bar2);

在这里插入图片描述

点击工具栏上方 … 处可以拖拽工具栏
在这里插入图片描述

设置工具栏不可拖拽:

    //设置工具栏固定不可移动
    bar2->setMovable(false);

该代码设置后工具栏无法拖拽。
在这里插入图片描述

设置允许停靠工具栏的位置;

    //设置只允许工具栏在设定位置停靠,|表示“或”
    bar2->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

9.设置窗口是否可浮动:

    //设置是否不可浮动,setFloatable参数为bool类型,默认可浮动
    bar2->setFloatable(false);

可浮动时在非边缘会变成以下格式:
在这里插入图片描述

10.在工具栏中添加内容:

在这里插入图片描述

用QAction定义菜单栏中的菜单项,在工具栏中可以展示菜单项

    //创建窗口中的选项
    QAction *newAction=windMenu->addAction("新建");
    windMenu->addSeparator();
    QAction *stopAction=windMenu->addAction("关闭");
    windMenu->addSeparator();
    QAction *manageAction=windMenu->addAction("管理");
    windMenu->addSeparator();
	......
	    //在工具栏上添加内容
    bar2->addAction(newAction);
    bar2->addAction(stopAction);
    bar2->addAction(manageAction);

在这里插入图片描述
在工具栏内添加控件:
用addWidget添加控件。
在这里插入图片描述

    //在工具栏上添加控件
    QPushButton *button1=new QPushButton("QP",this);
    bar2->addWidget(button1);

在这里插入图片描述

11.设置状态栏

	#include <QStatusBar>//状态栏头文件
	.......
    //创建状态栏,状态栏只能有一个
    QStatusBar *statusBar1=new QStatusBar();
    //将所创建的状态栏置于当前窗口上
    setStatusBar(statusBar1);

在这里插入图片描述

12.在状态栏上添加内容:

添加标签控件:

    //在状态栏上放置标签控件
    QLabel *label1=new QLabel("2022年08月08日",this);
    statusBar1->addWidget(label1);

使用addWidget添加控件时显示在左侧:
在这里插入图片描述
使用PermannentWidget时显示在右侧:
在这里插入图片描述
在这里插入图片描述

13.创建铆接部件并添加到窗口上:

    //添加铆接部件(浮动窗口),可以有多个铆接部件
    QDockWidget * dockWidget1=new QDockWidget("浮动窗口名称",this);
    addDockWidget(Qt::LeftDockWidgetArea,dockWidget1);

在这里插入图片描述
在这里插入图片描述
铆接部件放置的位置
在这里插入图片描述
所创建出的浮动窗口:
在这里插入图片描述
浮动窗口可以移动:
在这里插入图片描述
设置停靠区域:

14.设置中心部件:

    //设置中心部件
    QTextEdit *textEdit1=new  QTextEdit(this);
    setCentralWidget(textEdit1);

在这里插入图片描述
所用总代码如下:

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

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //重置窗口大小
    resize(600,400);
    //创建一个空菜单栏
    QMenuBar *bar1=menuBar();
    //将菜单栏放置于所创建的窗口上
    setMenuBar(bar1);
    //创建菜单,添加内容到菜单栏上,FileMenu等为该菜单的返回值
    QMenu *fileMenu=bar1->addMenu("文件");
    QMenu *edictMenu=bar1->addMenu("编辑");
    QMenu *windMenu=bar1->addMenu("窗口");
    //创建菜单项
    fileMenu->addAction("新建");
    //添加分割线
    fileMenu->addSeparator();
    fileMenu->addAction("打开");
    fileMenu->addSeparator();
    fileMenu->addAction("关闭");
    fileMenu->addSeparator();
    fileMenu->addAction("退出");
    fileMenu->addSeparator();
    edictMenu->addAction("粘贴");
    edictMenu->addSeparator();
    edictMenu->addAction("复制");
    edictMenu->addSeparator();
    edictMenu->addAction("全选");
    edictMenu->addSeparator();
    edictMenu->addAction("删除");
    edictMenu->addSeparator();
    edictMenu->addAction("撤销");
    edictMenu->addSeparator();
    //创建窗口中的选项
    QAction *newAction=windMenu->addAction("新建");
    windMenu->addSeparator();
    QAction *stopAction=windMenu->addAction("关闭");
    windMenu->addSeparator();
    QAction *manageAction=windMenu->addAction("管理");
    windMenu->addSeparator();
    //创建工具栏,工具栏可以有多个
    QToolBar *bar2=new QToolBar(this);
    //设定工具栏的位置,如左侧,第二个参数为被设置的工具栏
    addToolBar(Qt::LeftToolBarArea,bar2);
    //设置工具栏固定不可移动
    bar2->setMovable(false);
    //设置只允许工具栏在设定位置停靠,|表示“或”
    bar2->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
    //设置是否不可浮动,setFloatable参数为bool类型,默认可浮动
    bar2->setFloatable(false);
    //在工具栏上添加内容
    bar2->addAction(newAction);
    bar2->addAction(stopAction);
    bar2->addAction(manageAction);
//    //在工具栏上添加控件
//    QPushButton *button1=new QPushButton("QP",this);
//    bar2->addWidget(button1);

    //创建状态栏,状态栏只能有一个
    QStatusBar *statusBar1=new QStatusBar();
    //将所创建的状态栏置于当前窗口上
    setStatusBar(statusBar1);
    //在状态栏上放置标签控件
    QLabel *label1=new QLabel("2022年08月08日",this);
    statusBar1->addWidget(label1);
    QLabel *label2=new QLabel("星期一,15:36",this);
    statusBar1->addPermanentWidget(label2);
    //添加铆接部件(浮动窗口),可以有多个铆接部件
    QDockWidget * dockWidget1=new QDockWidget("浮动窗口名称",this);
    addDockWidget(Qt::LeftDockWidgetArea,dockWidget1);
    //设置铆接部件停靠位置
    dockWidget1->setAllowedAreas(Qt::TopDockWidgetArea|Qt::LeftDockWidgetArea);
    //设置中心部件
    QTextEdit *textEdit1=new  QTextEdit(this);
    setCentralWidget(textEdit1);
}

MainWindow::~MainWindow()
{
}


本篇笔记为B站学习后总结,侵删。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值