当前位置: 首页 > article >正文

QT创建mainWindow窗口组件

QT创建mainWindow窗口组件

1.概述

这篇文章介绍创建一个mainWindow类型的窗口,为这个窗口添加菜单栏、工具栏、状态栏、浮动窗口等操作。

2.创建mainwindow窗口组件

通过QT创建一个mainwindow类型的窗口,然后在mainwindow.cpp窗口中添加内容。

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

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(600,400);

    /*
     * 菜单栏
     * 在整个窗口中最多只能有一个

*/

//    创建菜单栏
    QMenuBar * bar = menuBar();
    // mac不显示菜单栏解决方法:添加这行就可以显示菜单栏
    bar->setNativeMenuBar(false);
//    菜单栏放到窗口
    setMenuBar(bar);
//    添加菜单
    QMenu * fileMenu = bar->addMenu("文件");
    QMenu * editMenu = bar->addMenu("编辑");

//    添加菜单项
    QAction * fileAction =  fileMenu->addAction("新建");
    fileMenu->addAction("打开");
//    添加分割线
    fileMenu->addSeparator();
    fileMenu->addAction("关闭");


    /*
     * 工具栏
     * 在整个窗口中可以有多个

*/
//    创建工具栏
    QToolBar * toolBar = new QToolBar(this);
//    工具栏添加到窗口,并制定它在窗口的位置
    addToolBar(Qt::LeftToolBarArea, toolBar);

//    设置工具栏只能在左边和右边
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

//    设置工具栏是否浮动
    toolBar->setFloatable(false);

//    设置工具栏是否可移动
    toolBar->setMovable(false);

//    添加工具栏菜单
//    将菜单栏中的新建菜单项添加到工具栏中
    toolBar->addAction(fileAction);

//    添加分割线
    toolBar->addSeparator();
    toolBar->addAction("编辑");


    /*状态栏
     * 在整个窗口中只能有一个

*/
//    创建状态栏
    QStatusBar * st = statusBar();
//    状态栏添加到窗口
    setStatusBar(st);
//    标签控件
    QLabel * label = new QLabel("状态栏",this);
//    标签控件添加到状态栏
    st->addWidget(label);

//    标签控件添加到右侧
    st->addPermanentWidget(label);


    /* 浮动窗口
     * 可以有多个

*/
//    创建浮动窗口
    QDockWidget * dw = new QDockWidget("浮动窗口" ,this);
//    设置浮动窗口位置
    addDockWidget(Qt::BottomDockWidgetArea,dw);
//    限制浮动窗口停靠的位置
    dw->setAllowedAreas(Qt::TopDockWidgetArea | Qt::LeftDockWidgetArea);



    /*设置中心部件
     * 窗口中心内容区域,只能有一个

*/
    QTextEdit * edit = new QTextEdit(this);
    setCentralWidget(edit);





}

MainWindow::~MainWindow()
{
}



http://www.kler.cn/a/385476.html

相关文章:

  • 如何使用IDEA创建Maven/SSM工程?
  • AI 大模型如何赋能电商行业,引领变革
  • Android 开发指南:初学者入门
  • 满200减30,怎么样用python计算凑单正好满足要求呢?
  • TCP可靠连接的建立和释放,TCP报文段的格式,UDP简单介绍
  • 03WIFI与蓝牙1——基于全志V3S的Linux开发板教程笔记
  • 高校宿舍信息管理系统小程序
  • ubuntu22.04 密钥存储在过时的 trusted.gpg 密钥环中
  • 验证码-滑动验证码和点选验证码
  • uniapp发布到微信小程序,提示接口未配置在app.json文件中
  • YAML 语法随笔
  • 微软日志丢失事件敲响安全警钟
  • SQLI LABS | Less-35 GET-Bypass Add Slashes (we dont need them) Integer Based
  • 2024中国国际数字经济博览会:图为科技携明星产品引领数智化潮流
  • 在 Sass 中使用 Mixins
  • 基于Scikit-learn的多元线性回归模型构建与验证
  • 鸿蒙进阶篇-网格布局 Grid/GridItem(二)
  • LeetCode题练习与总结:打乱数组--384
  • 无人机干扰与抗干扰,无人机与反制设备的矛与盾
  • 如何解决导入aioredis报错TypeError: duplicate base class TimeoutError的问题(轻松解决,亲测有效)
  • 可视化建模与UML《类图实验报告》
  • WebRTC 环境搭建
  • 【报错解决】使用@SpringJunitConfig时报空指针异常
  • huawei初级网络工程师综合实验
  • 《计算机网络》课后探研题书面报告_了解网络设备
  • 语音识别如何赋能医疗行业:AI技术应用与场景剖析