Qt部件基类QWidget

2023-11-07

1.默认部件基类

  • QT提供的默认部件基类包括QMainWindow、QWidget、和QDialog这三种,这三个部件基类也是用的最多的。
    在这里插入图片描述

  • QMainWindow是带有菜单栏、工具栏、状态栏的主窗口类,它有自己单独的布局。布局有一个中心区域,通常是标准的Qt部件,也可以是定制部件,且必须有一个中心小部件。setCentralWidget()方法可设置中心部件。

  • QWidget类是所有部件对象的基类,被称为基础窗口部件,继承关系详看QWidget类关系图。QWidget提供自我绘制和处理用户输入等基本功能,如接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。一个没有父窗口部件的窗口部件一直是顶级窗口部件。非顶级窗口部件是父窗口的子部件。QWidget构造函数有两个参数:QWidget *parent = 0,Qt::WindowFlags f = 0。parent即父窗口,默认为0,即没有父窗口,是顶级窗口,如果指定parent值则当前窗体将会是一个子部件。Qt::WindowFlags是Qt::WindowType枚举值的组合,用来设置窗口的属性,f = 0表默认为Qt::Widget风格,其余窗口属性详见附件表一。setWindowState()可设置窗体的状态,参数由Qt::WindowStates枚举值指定,
    窗体状态如下表所示

窗体状态 作用
Qt::WindowNoState 窗体为正常状态
Qt::WindowMinimized 窗体最小化
Qt::WindowMaximized 窗体最大化
Qt::WindowActive 窗体为活动窗体 (有多个打开的窗口时, 活动窗口位于最上层)
Qt::WindowFullScreen 窗体全屏显示

 
 

QWidget设计模式属性设置:

窗体尺寸 作用
enabled 启用或禁用widget,默认启用。
geometry 获取widget的位置和尺寸。
sizePolicy 设置widget在水平和垂直方向的伸缩策略以及伸缩因子
resize(300, 200) 设置窗体为宽300, 高200
move(50,90) 移动窗体坐标到x:50, y:90
height() 获取当前窗体的高度
width() 获取当前窗体的宽度
x() 获取窗体的x坐标
y() 获取窗体的y坐标
  • sizePolicy 设置widget在水平和垂直方向的伸缩策略以及伸缩因子(Stretch Factors),所谓伸缩策略实际就是widget对待部件大小提示的策略,需结合布局管理器一起使用。伸缩策略可通过调用setSizePolicy()方法设置,大小提示可通过sizeHint()函数返回值获取,也可重载sizeHint()方法进行重置。
  • 拉伸因子描述了各个部件在进行拉伸时,部件间以指定的比例进行拉伸,如水平布局的三个按钮其拉伸因子分别设为1,2,3则表示该3个按钮将会以1:2:3的比例进行拉伸。注意:1.当主窗口的大小不能按计算出来的比例容纳下所有子部件时,子部件不一定会按设计好的比例进行排列。
    大小策略与拉伸因子之间的关系:
    若部件的拉伸因子大于0,则按照拉伸因子的比例分配空间;若拉伸因子为0,则只有在其他部件不需要空间时才会获得空间;也就是说若一些部件拉伸因子大于0,而一些部件拉伸因子为0,则只有拉伸因子大于0的部件会被拉伸,而拉伸因子为0的部件不会被拉伸。若所有部件的拉伸因子都为0,则按照大小策略的规则对部件进行拉伸。注意:2.若部件的大小策略为Fixed,则即使设置了拉伸因子,该部件也不会被拉伸。故拉伸因子会使大小策略不起作用或失效(除了Fixed策略外)
属性值 作用
Fixed 尺寸不能改变,尺寸为sizeHint大小
Minimum 尺寸可以拉伸,尺寸可变范围:≥sizeHint
Maximum 尺寸可以缩小,尺寸可变范围:minimumSizeHint ~ sizeHint
Expanding 可以变大缩小,尺寸可变范围:≥minimumSizeHint,且部件有优先扩展权(注:优先扩展权表部件将尽可能多的占用空间,如Preferred与Expanding同时存在则优先分配空间给Expanding)
MinimumExpanding 尺寸可以拉伸,尺寸可变范围:≥minimumSizeHint,且部件有优先扩展权
Ignored 任意变大缩小,尺寸可变范围:≥minimumSizeHint(若minimumSizeHint为0,则可缩小至0,此时部件不可见)

 
 

属性值 作用
minimumSize 设置部件的最小尺寸,伸缩时不可继续缩小。
maximumSize 设置部件的最大尺寸,伸缩时不可继续变大。
palette 画板,设置部件的基本样式。
mouseTracking 鼠标跟踪,鼠标离开部件范围后,部件仍可以接收到mousemove等事件。
tabletTracking 平板或手机的陀螺仪、加速度传感器跟踪。
focusPolicy 焦点策略,按钮可以通过NoFocus使虚线消失,lineedit这类文本编辑框必须能获得焦点。

 
 

属性值 作用
NoFocus 无法通过点击和键盘获得焦点
TabFocus 鼠标无法获得焦点,Tab键获得焦点
ClickFocus 鼠标点击获得焦点,Tab键无法获得焦点
StrongFocus 鼠标和Tab键都可以获得焦点
WheelFocus 通过滚轮获得焦点

 
 

属性值 作用
contextMenuPolicy 上下文菜单策略,指定菜单的显示方式。
NoContextMenu 部件无菜单,菜单处理延迟到部件父亲
PreventContextMenu 部件无菜单,菜单处理不延迟到父亲,而是传递到本身。
DefaultContextMenu 调用部件的contextMenuEvent方法,默认处理方式为忽略上下文事件。
ActionsContextMenu 部件菜单由 actions定义构成
CustomContextMenu 部件菜单自定义,发送customContextMenuRequested信号

 
 

属性值 作用
acceptDrops 设置部件是否接受拖拽事件,默认启用。
toolTip 设置部件的提示,鼠标悬浮时会显示。
toolTipDuration 设置widgettoolTip的显示持续时间,毫秒为单位,默认为-1,会一直显示。
statusTip 设置部件的状态提示,当窗口有statusBar时会显示在上面。
whatsThis 某些窗口会有whatsThis按钮,选中后点击其他按钮会显示帮助信息
accessibleName 辅助功能客户端应用程序所使用的控件名称。
accessibleDescription 主要用来为视力较差或盲人用户,提供更大的上下文,也可以使用上下文搜索或其他应用程序。
layoutDirection widget 布局的方向,LeftToRight,RightToLeft,LayoutDirectionAuto,字面意思
autoFillBackground 设置widget背景是否被画板颜色自动填充,默认不勾选
styleSheet 设置widget的qss样式表
locale 设置widget的区域和语言,在将时间等信息转成字符串后,年月日几个字会显示不同语言
inputMethodHint 设置widget输入时的屏幕键盘模式,有纯数字、纯字母等多种模式,用在手机端
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt部件基类QWidget 的相关文章

随机推荐

  • 使用Clang作为编译器 —— Assembling a Complete Toolchain

    装配一个完整的工具链 1 介绍 2 工具 2 1 Clang 前端 2 2 其他语言的语言前端 2 3 汇编器 2 4 链接器 3 运行时库 3 1 编译器运行时 Compiler runtime 3 2 原子库 Atomics libra
  • maven学习笔记 maven的安装和配置

    maven是什么 maven是一个Java项目管理工具 maven提供了大量命令行工具 可以方便的管理java项目建立 开发 测试 打包 生成 部署等各个生命周期的操作 极大的方便开发者 同时 maven还提供了统一的项目结构 简化了项目的
  • Matlab 自编雅可比矩阵 (jacobi) 函数与官方的Jacobian matrix(雅可比矩阵)函数对比及创新

    目录 0 引言 1 雅可比矩阵 2 matlab中函数表达式两种方法 2 1 符号表达式 2 2 函数句柄 2 3 函数句柄与符号表达式相互转化 2 4 常会用到的一些函数 3 自编代码 4 官方函数 5 参考文献 0 引言 最近遇到了一些
  • 点云边界提取及可视化

    include
  • qt自定义qtablemodel实现改变item的背景色

    如果你使用的是qtablewidget就非常简单 只需要 qtablewidget gt item i j gt setBackground QBrush 0 0 0 如果你的qtableview的时候 需要使用自定义模型 也就是继承QAb
  • SQL server 2016 安装步骤

    SQL server 2016 安装步骤 1 进入安装中心 可以参考硬件和软件要求 可以看到一些说明文档 2 选择全新安装模式继续安装 3 输入产品秘钥 这里使用演示秘钥进行 4 在协议中 点击同意 并点击下一步按钮 继续安装 5 进入全局
  • 程序出现以下报错现象 解决办法 在程序开始加上 from urllib request import urlopen
  • 基于FPGA的一维卷积神经网络CNN的实现(七)池化层实现

    池化层实现 环境 Pytorch Pycham Matlab 订阅后有问题 或者需要该节的文件 请私信 说明 上一节已经介绍了卷积层电路实现的原理 这一节主要介绍池化层实现的原理 第一节 基于FPGA的一维卷积神经网络CNN的实现 一 框架
  • PHP数字金额转中文大写金额

    今天开发一个项目功能的时候突然需要将数字金额转换成大写中文金额 故在百度搜索了一翻 再针对性都修改一点点 记录此处 金额转汉字大写 function cny ns static cnums array 零 壹 贰 叁 肆 伍 陆 柒 捌 玖
  • 微信小程序开发布局——Flex

    微信小程序开发布局 Flex 问题背景 微信小程序页面布局方式采用的是 Flex 布局 本文将介绍微信开发过程Flex布局的相关知识 问题分析 1 任何一个容器都可以指定为Flex布局 box display flex 行内元素也可以使用F
  • 亚信科技AntDB数据库专家出席数据库标准研讨会并参与研讨

    2023年7月12日 全国信息技术标准化技术委员会数据库标准工作组 SAC TC28 WG31 秘书处组织召开数据库标准研讨会 会议围绕数据库标准工作组2023年上半年开展的标准编制情况进行交流 亚信科技AntDB数据库相关专家出席会议 并
  • 红黑树 java

    1每个节点是红色或者黑色 2根节点是黑色 3每一个叶子节点 最后的空节点 是黑色 4如果一个节点是红色 那么他的孩子节点都是黑色 红色节点都是向左倾斜 5从任意一个节点到叶子节点 经过的黑色节点是一样的 也满足二分搜索树的性质 是绝对平衡的
  • redis学习笔记01:String类型的实现SDS

    看了 Redis设计与实现 第二章关于redis底层对于String类型的实现 SDS Simple Dynamic String 简单动态字符串 的内容 在这里做一点简单的总结笔记 一 SDS结构 struct sdshdr 记录buf数
  • AtCoder Beginner Contest 314

    A 3 14 atcoder jp AC代码 include
  • 数字电路设计之低功耗设计方法四:预计算

    pre computation 这是一个预先计算 在一定条件下 可以做出判断之后 对于一些没必要的计算那就不计算 如果应用已有的计算无法得出正确的结果 那么就继续往下计算直到计算出所需的结果 这个做法相比原始的全部计算的方法大大降低了动态功
  • [JAVAee]多线程-wait方法与notify方法

    我们知道 线程之间是抢占式执行的 通俗来说 就是随机调度的 每一个线程什么时候运行我们也不知道 这里就来介绍 让线程可以按照一定顺序执行的方法 目录 1 wait方法 2 notify notifyAll方法 3 使用wait与notify
  • IPMI与BMC简介

    智能平台管理接口 IPMI 是一种开放标准的硬件管理接口规格 定义了嵌入式管理子系统进行通信的特定方法 IPMI 信息通过基板管理控制器 BMC 位于 IPMI 规格的硬件组件上 进行交流 使用低级硬件智能管理而不使用操作系统进行管理 具有
  • Window localStorage 属性与Window sessionStorage 属性(Js将数据存储在浏览器端)

    一 目的 实现浏览器全局变量 即可轻松解决跨页面传值问题 二 简介 1 localStorage 和 sessionStorage 属性允许在浏览器中存储 key value 对的数据 2 localStorage用于长久保存整个网站的数据
  • 病理切片的相关文章总结

    1 数字病理学中的人工智能 用于诊断和精确肿瘤学的新工具 2 小样本学习研究综述 中科院计算所 3 基于无监督组织分类的结直肠癌生存预测研究 4 常规组织病理学弱监督无标注癌检测与基因型预 5 肿瘤拓扑图 无监督深度学习 6 一种基于原型学
  • Qt部件基类QWidget

    1 默认部件基类 QT提供的默认部件基类包括QMainWindow QWidget 和QDialog这三种 这三个部件基类也是用的最多的 QMainWindow是带有菜单栏 工具栏 状态栏的主窗口类 它有自己单独的布局 布局有一个中心区域