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

[Qt]QMainWindow

目录

1.基本概述

2.菜单栏

3.工具栏

4.状态栏

5.铆接部件

6.中心部件

7.资源文件

(1)创建菜单栏,及菜单项

(2)创建工具栏

(3)创建锚接部件

(4)创建中心文件

(5)创建状态栏


1.基本概述

QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。

2.菜单栏

       (1)菜单栏最多只有一个,在窗口最上方
  (2)菜单栏创建:                                                                                                                                    通过QMainWindow类的menubar()函数获取主窗口菜单栏指针
    #include < QMenuBar >
    QMenuBar *bar = MenuBar();
    此时菜单栏不仅为空,而且独立于窗口
  (3)菜单栏放入窗口:
    setMenuBar(bar)
    此时已经将菜单栏放入窗口,但是菜单栏没有内容,因此不显示
  (4)创建菜单:
    QMenu * fileMenu =bar->addMenu(“文件”);
  (5)创建菜单项:
    fileMenu ->setAction(“新建”)
    fileMenu ->setAction(“打开”)
  (6)菜单项之间的分隔符
     fileMenu->addSeparator();

3.工具栏

 (1)工具栏,(可以是多个),但是只能在左/右/上/下位置,默认是上方
  (2)工具栏创建:
    #include < QToolBar >
    QToolBarr *toolbar = new ToolBar(this);
  (3)工具栏放入窗口:
    addToolBar(toolbar);
    addToolBar(默认停靠区域,toolbar);
  (4)工具栏停靠范围:
    toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
  (5)工具栏浮动:
    toolBar->setFloatable(false);
  (6)工具项创建
     toolBar->addAction(“新建”);
     toolBar->addAction(“打开”);
  (7)工具项之间的分隔符
     toolBar->addSeparator();
  (8)控件作为工具项
     QPushButton *btn1=new QPushButton(“按钮”,this);//创建控件
     toolBar->addWidget(btn1);//将控件添加至工具栏

4.状态栏

       (1)状态栏,(最多只有一个),在窗口最下方
  (2)状态栏创建:
    #include < QStatusBar >
    QStatusBar * staBar= statusBar();
  (3)状态栏放入窗口:
    setStatusBar(staBar);
  (4)添加状态项:
    QLabel * label=new QLabel(“提示信息”,this);
     staBar->addWidget(label);//左侧添加
     QLabel *label1=new QLabel(“右侧提示信息”,this);
     staBar->addPermanentWidget(label1);//右侧添加

5.铆接部件

(1)锚接部件,(可以有多个),放置在上、下、左、右位置                          

(2)锚接部件创建:
  #include
  QDockWidget *dockWidget=new QDockWidget(“锚接部件/浮动窗口”,this);

(3)锚接部件放入窗口:
 addDockWidget( Qt::BottomDockWidgetArea,dockWidget);//参数1:默认位置
(4)锚接部件放置范围:
dockWidget>setAllowedAreas(Qt::TopDockWidgetArea|Qt::BottomDockWidgetArea);

6.中心部件

(1)中心部件,(只能有一个
(2)中心部件创建:
  #include
  QTextEdit *edit =new QTextEdit(this);//添加至对象树
(3)中心部件放入窗口:
  setCentralWidget(edit);

7.资源文件

本节如何通过界面文件,通过拖动组件的方式创建界面:ui文件如图所示:

(1)创建菜单栏,及菜单项

(2)创建工具栏

(3)创建锚接部件

(4)创建中心文件

(5)创建状态栏

相关文章:

  • Django中在CBV(基于类的视图)中添加装饰器
  • 【笑小枫的SpringBoot系列】【十】SpringBoot处理请求跨域问题
  • 算法竞赛入门【码蹄集进阶塔335题】(MT2326-2330)
  • Keychron Q1:客制化机械键盘|体验
  • Linux C/C++ 多线程开发 - 基础介绍
  • C语言内存讲解-详说内存分布和heap空间
  • SpringBoot电商项目前后端界面搭建
  • Android 天气APP(三十六)运行到本地AS、更新项目版本依赖、去掉ButterKnife
  • 【C++学习】string的使用
  • WeMos Mini ESP32-S2FN4R2介绍
  • Halcon图像分割总结
  • 5 h0255. 迷宫问题,6 h0253. 鸣人和佐助(广度优先搜索)
  • 《数据结构》堆栈(铁路、洗牌、汉诺塔、走迷宫)全解析
  • 基于时序行为的协同过滤推荐算法(Python)
  • Vue--》计算属性与监视(侦听)属性的使用
  • 【Amaple教程】5. 插件
  • 【个人向】《HTTP图解》阅后小结
  • Android开源项目规范总结
  • httpie使用详解
  • SQL 难点解决:记录的引用
  • Xmanager 远程桌面 CentOS 7
  • Zepto.js源码学习之二
  • 前端学习笔记之观察者模式
  • 一个项目push到多个远程Git仓库
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 容器镜像
  • #Ubuntu(修改root信息)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C语言)二分查找 超详细
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (南京观海微电子)——COF介绍
  • (新)网络工程师考点串讲与真题详解
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • *2 echo、printf、mkdir命令的应用
  • ./和../以及/和~之间的区别
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net连接oracle数据库
  • .NET正则基础之——正则委托
  • .net中调用windows performance记录性能信息
  • .ui文件相关
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [1] 平面(Plane)图形的生成算法
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [C/C++]数据结构 循环队列