控件概念
一个图形化界面上的内容,在编写代码的时候不需要全部从零开始实现。Qt种已经提供了很多内置的控件(按钮、文本框、单选按钮、复选按钮、下拉框等等),直接进行使用即可。
控件,英文名称widget,控件是界面上的各种元素的“统称”。
在Qt Designed左侧这一长条,就是Qt已经内置好的控件了。
控件的发展历程
第一个阶段
开发GUI界面上显示出来的东西,全部都可以看作是“画”出来的。
例如:文曲星,当时有很多的开发者就是基于这个平台开发了很多的程序。
第二个阶段
控件的概念被逐渐被引入,但是早期的控件比较简单,数量比较有限,例如HTML,就包含很多标签,不同的标签具有不同的效果。<img>图形,<a>链接,<input>输入框,<button>按钮。
第三个阶段
随着时代的发展,新的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 如何获取到焦点。
|
contextMenuPolicy
|
上下⽂菜单的显⽰策略.
|
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
|
布局⽅向.
|
autoFillBackground
|
是否⾃动填充背景颜⾊.
|
windowFilePath
|
能够把 widget 和⼀个本地⽂件路径关联起来. PS: 其实作⽤不⼤.
|
accessibleName
|
设置 widget 的可访问名称. 这个名称可以被辅助技术 (像屏幕阅读器) 获取到.
这个属性⽤于实现⽆障碍程序的场景中 (也就是给盲⼈写的程序).
PS: 其实盲⼈也是可以使⽤电脑和⼿机的. 甚⾄盲⼈还能成为程序猿. 参⻅
https://www.bilibili.com/video/BV1954y1d7z9
|
accessibleDescripti
on
|
设置 widget 的详细描述. 作⽤同 accessibleName
|
inputMethodHints
|
针对输⼊框有效, ⽤来提⽰⽤⼾当前能输⼊的合法数据的格式. ⽐如只能输⼊数字, 只能
输⼊⽇期等.
|