QMainWindow的使用

首先,QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(Menu Bar)、工具栏(Tool Bar)、多个铆接部件(dock widgets)、状态栏(status Bar)、中央窗口(center Widgets)。

**加粗样式
**


菜单栏

在QMainWindow中,菜单栏Menu bar只能有一个,比如说下面图中红线画出来的部分,这样的菜单栏在一个项目中只有一个。

    //创建菜单栏
    QMenuBar* bar =  menuBar();
    //将菜单栏放到创建中
    setMenuBar(bar);

需要注意的是,在创建菜单栏的时候不需要自己指明父类(父亲是谁),因为 menuBar()会默认的吧QMainWindow类作为自己的父类。然后再通过setMenuBar(bar)将其设为菜单栏。

在这里插入图片描述

虽然菜单栏只可以由一个,但是菜单栏中可以创建多个菜单,同时每个菜单中可以由多个菜单项

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

    //创建菜单项
    fileMenu->addAction("新建");
    //添加分隔符
    fileMenu->addSeparator();
    fileMenu->addAction("打开");

工具栏

在QMainWindow中,工具栏可以有多个,如下面画红线区域。工具栏的使用和创建和QPushButton很像,需要自己指定父类。
同时工具栏可以设定停靠区域,设置哪些区域可停哪些等等
同时工具栏中也可以添加内容,也可以将按钮当做内容添加进去。

在这里插入图片描述

    //工具栏  可以有多个
    QToolBar * toolbar = new QToolBar(this);//和QPUshButton一样,没有系统方法
    addToolBar(Qt::LeftToolBarArea,toolbar);

    //设置工具栏的停靠范围
    toolbar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

    //设置浮动的操作
    toolbar->setFloatable(false);

    //设置移动的总开关
    toolbar->setMovable(false);

    //工具栏中添加内容
    toolbar->addAction("open");
    toolbar->addSeparator();
    toolbar->addAction("close");

    //工具栏中还可以添加按钮
    QPushButton* btn = new QPushButton("test",this);
    toolbar->addWidget(btn);

状态栏

QMainWindow中,状态栏只能有一个,用于表示项目此时的状态等等。下图话红线的一整片都是状态栏。状态栏中也可以添加一些内容等。

在这里插入图片描述

    //状态栏  最多有一个
    QStatusBar* stbar = statusBar();
    //设置到窗口中
    setStatusBar(stbar);
    //放标签空间
    QLabel *label = new QLabel("标签",this);
    stbar->addWidget(label);

铆接部件

在QMainWindow中,铆接部件可以有多个,其实铆接部件就相当于浮动窗口。具体例子我没想到,有知道的大佬可以在评论区讲下。
在这里插入图片描述

    //铆接部件 (浮动窗口)  可以有多个
    QDockWidget* dock = new QDockWidget("铆接1",this);
    //dock->setAllowedAreas(Qt::BottomDockWidgetArea);
    dock->setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);

中心部件

QMainWindow中中心部件只有一个,中心只有一个嘛。就像下图中,写代码的区域。

在这里插入图片描述

    //设置中心部件  只能有一个
    QTextEdit* text = new QTextEdit(this);
    setCentralWidget(text);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值