【Qt】控件介绍

简介: 【Qt】控件介绍

控件概念

       一个图形化界面上的内容,在编写代码的时候不需要全部从零开始实现。Qt种已经提供了很多内置的控件(按钮、文本框、单选按钮、复选按钮、下拉框等等),直接进行使用即可。

       控件,英文名称widget,控件是界面上的各种元素的“统称”。

在Qt Designed左侧这一长条,就是Qt已经内置好的控件了。

控件的发展历程

控件是 GUI 开发中的通⽤概念.,不仅仅局限在 Qt里。

第一个阶段

       完全没有控件. 此时需要通过⼀些绘图 API ⼿动的绘制出按钮或者输⼊框等内容, 代码编写繁琐。

开发GUI界面上显示出来的东西,全部都可以看作是“画”出来的。

       显示器显示的内容,可以理解成“画布”,操作系统,就可以提供一些API,让你在画布上进行画点、线、矩形或者填充各种颜色等等。此时,开发一个图形化界面的程序,就相当于先画一个窗口(矩形)。

例如:文曲星,当时有很多的开发者就是基于这个平台开发了很多的程序。

第二个阶段

控件的概念被逐渐被引入,但是早期的控件比较简单,数量比较有限,例如HTML,就包含很多标签,不同的标签具有不同的效果。图形,链接,输入框,按钮。

第三个阶段

随着时代的发展,新的GUI开发体系越来越丰富,提供的控件数量、质量越来越提示了。

整体来说,种类和效果都大幅度提示。

Qt的控件虽然很多,但是整体来说,颜值还是比更现代的控件体系要更逊色一点。但是Qt Designer中展示的控件都是默认的样子,Qt还提供了一些优化手段,可以让控件变得更好看。

例如Qt近几年提供的Qt Design Studio所制作出来的界面美观程度就是业界最领先的一档。

QWidget核心属性

Qt中各种控件都是继承自QWidget类,可以说QWidget就包含了Qt整个控件体系中通用的部分。

在Qt Creator右侧,可以看到QWidget的各种属性,并且也能直接在右侧进行编辑,这里的各种属性都可以通过Qt的文档进行了解。但是里面的内容较多,不需要每一个都去仔细钻研,只需要认识其中比较常用,比较重要的属性即可。

属性 作用
enabled

设置控件是否可使⽤. true 表⽰可⽤, false 表⽰禁⽤.

geometry

位置和尺⼨. 包含 x, y, width, height 四个部分.

其中坐标是以⽗元素为参考进⾏设置的

windowTitle

设置 widget 标题

windowIcon

设置 widget 图标

windowOpacity

设置 widget 透明度

cursor

⿏标悬停时显⽰的图标形状.

是普通箭头, 还是沙漏, 还是⼗字等形状.

在 Qt Designer 界⾯中可以清楚看到可选项.

font

字体相关属性.

涉及到字体家族, 字体⼤⼩, 粗体, 斜体, 下划线等等样式。

toolTip

⿏标悬停在 widget 上会在状态栏中显⽰的提⽰信息

toolTipDuring

toolTip 显⽰的持续时间

statusTip

Widget 状态发⽣改变时显⽰的提⽰信息(⽐如按钮被按下等)

whatsThis

⿏标悬停并按下 alt+F1 时, 显⽰的帮助信息(显⽰在⼀个弹出的窗⼝中)

styleSheet

允许使⽤ CSS 来设置 widget 中的样式.

Qt 中⽀持的样式⾮常丰富, 对于前端开发⼈员上⼿是⾮常友好的

focusPolicy

该 widget 如何获取到焦点。

  • Qt::NoFocus:控件不参与焦点管理,即⽆法通过键盘或⿏标获取焦点
  • Qt::TabFocus:控件可以通过Tab键获得焦点
  • Qt::ClickFocus:控件可以通过⿏标点击获得焦点 
  • Qt::StrongFocus:控件可以通过键盘和⿏标获得焦点
  • Qt::WheelFocus:控件可以通过⿏标滚轮获得焦点(在某些平台或样式中可能不可⽤)

contextMenuPolicy

上下⽂菜单的显⽰策略.

  • Qt::DefaultContextMenu:默认的上下⽂菜单策略,⽤⼾可以通过⿏标右键或键盘快捷键触发上下⽂菜单
  • Qt::NoContextMenu:禁⽤上下⽂菜单,即使⽤⼾点击⿏标右键也不会显⽰菜单
  • Qt::PreventContextMenu:防⽌控件显⽰上下⽂菜单,即使⽤⼾点击⿏标右键也不会显⽰菜单
  • Qt::ActionsContextMenu:将上下⽂菜单替换为控件的“动作”菜单,⽤⼾可以通过⿏标右键或键盘快捷键触发这个菜单
  • Qt::CustomContextMenu:使⽤⾃定义的上下⽂菜单,⽤⼾可以通过⿏标右键或键盘快捷键触发这个菜单

locale

设置语⾔和国家地区.

acceptDrops

该部件是否接受拖放操作。

如果设置为true,那么该部件就可以接收来⾃其他部件的拖放操作。当⼀个部件被拖放到该部件上时,该部件会接收到相应的拖放事件(如dropEvent)。

如果设置为false,那么该部件将不会接收任何拖放操作。

minimumSize

控件的最⼩尺⼨. 包含最⼩宽度和最⼩⾼度.

maximumSize

控件的最⼤尺⼨. 包含最⼤宽度和最⼤⾼度.

sizePolicy

尺⼨策略. 设置控件在布局管理器中的缩放⽅式

windowModality

指定窗⼝是否具有 "模态" ⾏为

sizeIncrement

拖动窗⼝⼤⼩时的增量单位

baseSize

窗⼝的基础⼤⼩, ⽤来搭配 sizeIncrement 调整组件尺⼨是计算组件应该调整到的合适的值.

palette

调⾊板. 可以设置 widget 的颜⾊⻛格

mouseTracking

是否要跟踪⿏标移动事件.

如果设为 true, 表⽰需要跟踪, 则⿏标划过的时候该 widget 就能持续收到⿏标移动事件.

如果设为 false, 表⽰不需要跟踪, 则⿏标划过的时候 widget 不会收到⿏标移动事件, 只能收到⿏标按下或者释放的事件.

tabletTracking

是否跟踪触摸屏的移动事件.

类似于 mouseTracking . Qt 5.9 中引⼊的新属性.

layoutDirection

布局⽅向.

  • Qt::LeftToRight:⽂本从左到右排列,也是默认值。
  • Qt::RightToLeft:⽂本从右到左排列。
  • Qt::GlobalAtomics:部件的布局⽅向由全局原⼦性决定(PS 这个翻译其实有点尴尬. 其实就是根据应⽤程序中的其他 widget 布局⽅向确定的).

autoFillBackground

是否⾃动填充背景颜⾊.

windowFilePath

能够把 widget 和⼀个本地⽂件路径关联起来. PS: 其实作⽤不⼤.

accessibleName

设置 widget 的可访问名称. 这个名称可以被辅助技术 (像屏幕阅读器) 获取到.

这个属性⽤于实现⽆障碍程序的场景中 (也就是给盲⼈写的程序).

PS: 其实盲⼈也是可以使⽤电脑和⼿机的. 甚⾄盲⼈还能成为程序猿. 参⻅

accessibleDescripti

on

设置 widget 的详细描述. 作⽤同 accessibleName

inputMethodHints

针对输⼊框有效, ⽤来提⽰⽤⼾当前能输⼊的合法数据的格式. ⽐如只能输⼊数字, 只能

输⼊⽇期等.


相关文章
|
3月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
248 3
|
3月前
|
存储
【Qt 学习笔记】Qt常用控件 | 多元素控件 | Table Widget的说明及介绍
【Qt 学习笔记】Qt常用控件 | 多元素控件 | Table Widget的说明及介绍
206 3
|
3月前
|
索引
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
358 3
|
3月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 空白项Spacer
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 空白项Spacer
147 2
|
3月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout
74 2
|
3月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 网格布局Grid Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 网格布局Grid Layout
307 2
|
3月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout
195 2
|
3月前
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout
271 2
|
3月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
87 2
|
3月前
|
数据可视化 API
【Qt 学习笔记】Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍
【Qt 学习笔记】Qt常用控件 | 多元素控件 | Tree Widget的说明及介绍
33 2