如何自学qt(2) ——MainWindow类相关

本文详细介绍了如何使用QT框架构建一个基础的文本编辑器,包括设置菜单栏、工具栏、浮动窗口、状态栏以及主窗体。通过实例代码展示了各个组件的创建和配置,如添加菜单项、设置工具栏控件、创建浮动窗口以及设定状态栏显示内容。此外,还分享了在编码过程中的小技巧和注意事项。
摘要由CSDN通过智能技术生成

这一篇主要讲MainWindow这个基础类——因为我学qt的终极目标是做一个文本编辑器,所以这个就很重要。
我实在是懒得描述这四个

1,菜单栏

【中午没买咖啡,我现在困的像狗】
菜单栏只能有一个,在最上面,类似于word里面的那一排“文件”“格式”“布局”什么的
基础设置代码如下

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QDebug>
#include <QMenuBar>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    resize(600,400);
    //创建菜单栏
    QMenuBar *mebar = menuBar();
    //把菜单栏放进窗口
    setMenuBar(mebar);
    //创建菜单项
    QMenu *filemenu = mebar -> addMenu("文件");
    QMenu *exidmenu = mebar -> addMenu("编辑");
    //添加cai菜单选项
    filemenu -> addAction("新建");
    filemenu -> addAction("保存");
    //添加分割线
    filemenu -> addSeparator();
    filemenu -> addAction("历史记录");
}

效果如下
在这里插入图片描述

2,工具栏

工具栏可以有很多,基础设置代码如下

//创建一个工具栏
    QToolBar *tolbar = new QToolBar(this);
    //把工具栏添加到窗体,固定开始的位置
    addToolBar(Qt::LeftToolBarArea,tolbar);
    //设置能否移动
    tolbar -> setMovable(false);
    //设置能否浮动
    tolbar -> setFloatable(false);
    //设置,只允许左右停靠
    tolbar -> setAllowedAreas(Qt::RightToolBarArea | Qt::LeftToolBarArea);
    //设置内容,第一个用的是正常添加,第二个是添加了之前菜单栏的action,方便后续的代码。
    tolbar -> addAction("切换");
    tolbar -> addAction(newaction);
    //添加分割线
    tolbar -> addSeparator();
    //在工具栏中添加控件
    QPushButton *bu = new QPushButton("分析",this);
    tolbar -> addWidget(bu);

}

顺便一说,为了添加之前菜单的action(便于管理),我修改了前面的一行代码

QAction *newaction = filemenu -> addAction("新建");

效果如下
在这里插入图片描述

3,铆接部分(浮动窗口)

类似于vs中的资源管理器,可以停靠可以浮动
具体的设置代码如下

//铆接部件(浮动窗口),可以有多个
    QDockWidget *dock = new QDockWidget("浮动",this);
    //设置初始位置
    addDockWidget(Qt::BottomDockWidgetArea,dock);
    //设置后期停靠的位置,只能上下
    dock->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);

效果如下
在这里插入图片描述

4,状态栏

类似于word下面标注字数和语病错误的固定栏,只能有一个
设置代码如下

 //状态栏,只能有一个
    QStatusBar *stbar = statusBar();
    //设置到窗口中
    setStatusBar(stbar);
    //放标签控件
    QLabel *lab = new QLabel("提示",this);
    stbar -> addWidget(lab);
    QLabel *lab2 = new QLabel("字数:100",this);
    stbar -> addPermanentWidget(lab2);

效果如下
在这里插入图片描述
5,主窗体
顾名思义,类似于vs中写代码的地方,word里面写文字的地方
只能有一个哦
构成代码如下

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

包含以上所有控件,效果如图
在这里插入图片描述

6,一点点心得和思考

1,无论使用哪个控件,都要添加头文件
2,菜单栏和状态栏这一上一下是有构成函数的,其他的要new一个
3,位置的枚举库都是Qt,后面跟着方向,然后是控件名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值