当前位置:网站首页>Day13QMainWindow2021-09-28

Day13QMainWindow2021-09-28

2022-06-21 16:58:00 晓晓暮雨潇潇

QMainWindow——主窗口的使用

主窗口为建立应用程序用户界面提供了一个框架,Qt提供了QMainWindow和其他一些相关的类共同完成主窗口的管理。
菜单栏:QMenuBar,包含了一个下拉菜单项的列表,这些菜单项由QAction动作类实现。菜单栏位于主窗口的顶部,一个窗口只能有一个菜单栏。
工具栏:QToolBar,一般用于显示一些常用的菜单项目,也可以插入其他窗口部件,如按钮。
中心部件:在主窗口的中心区域可以放置一个窗口部件作为中心部件,是应用程序主要功能实现的区域。
Dock部件:QDockWidget,Dock部件常被称为停靠窗口,用来放置一些部件来实现功能,类似工具箱。
状态栏: QStatusBar,用于显示程序的一些状态信息,在主窗口最底部。
这些项目在窗口中的添加通常可以通过UI界面操作来完成, 但除状态栏之外。具体的功能通常需要用代码进行链接。下面案例将使用纯代码的方式添加上述内容到窗体中。
代码如下,注释已经描述清楚:

    this->resize(600,400);
    /****************菜单栏 只有一个***************/
    QMenuBar *bar=menuBar(); //这个方法是系统提供的,他的返回值是QMenuBar
    //将菜单栏设置到窗口中
    setMenuBar(bar);
    //添加菜单 
    QMenu  *fileMenu=bar->addMenu("文件");
    //添加菜单项
    QAction *newAction=fileMenu->addAction("新建");
    //添加分割线
    fileMenu->addSeparator();
     QAction *newAction1=fileMenu->addAction("打开");

     /****************工具栏 可以 有多个***************/
     QToolBar *toolBar = new QToolBar(this);
     //将工具栏放入窗口中
     addToolBar(Qt::LeftToolBarArea,toolBar);//调整默认放在左面
     //只允许上下停靠
     toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
     //不允许浮动
     toolBar->setFloatable(false);
     //关闭移动 总开关
     toolBar->setMovable(false);
     //工具栏中添加小控件
     QPushButton *btn = new QPushButton("按钮",this);
     toolBar->addWidget(btn);
     //工具栏中添加菜单项
     toolBar->addAction(newAction);
     //添加分割线
     toolBar->addSeparator();
     toolBar->addAction(newAction1);

     /****************状态栏 只有一个***************/
    QStatusBar *status = statusBar();
    //将状态兰添加到窗口中
    setStatusBar(status);

    //放入标签
    QLabel *label =new QLabel("左键信息",this);
    //将标签放入状态栏
    status->addWidget(label);

    QLabel *label1 =new QLabel("右键信息",this);
    status->addPermanentWidget(label1);

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

    //核心部件
    QTextEdit *text = new QTextEdit(this);
    setCentralWidget(text);

效果如下:

在这里插入图片描述

原网站

版权声明
本文为[晓晓暮雨潇潇]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_40615338/article/details/120525292