QT等WindowsUI控件整理.docx
《QT等WindowsUI控件整理.docx》由会员分享,可在线阅读,更多相关《QT等WindowsUI控件整理.docx(239页珍藏版)》请在冰豆网上搜索。
QT等WindowsUI控件整理
WindowsUI控件整理
前言
文中控件的整理主要参考QT、MFC、Forms,还有少量参考公司产品KS。
对于来自QT的大部分控件,其属性、事件、方法等都是由QWidgets派生而来。
现将QWidget的属性和事件整理如下:
属性中多次出现sizeHint
这个属性所保存的QSize类型的值是一个被推荐给widget的尺寸(并不一定就是widget的尺寸)。
当sizeHint的取值是一个无效值的时候(sizeHint().isValid()返回false,QSize中width或者height有一个为负数就会是无效的),什么作用也没有;当它是一个有效值的时候,它就成了widget大小的一个参考。
Qt中对sizeHint()的默认实现是这样的:
当widget没有布局(layout)时,返回无效值;否则返回其layout的首选尺寸(preferredsize)。
注:
文中所有鼠标单击双击事件均可分为左键和右键;
属性值得更改均会引发响应的事件,因此不一一列出;
每个属性都有其设置方法、获取方法、判断方法,因此不一一列出;
QWidgets属性
序号
属性
描述
备注
1
ObjectName
设置控件名称
2
Enable
控件是否可用
3
Geometry
控件在对话框中的位置大小
X、Y、宽度、高度
4
sizePolicy
控价的大小属性
这个属性保存了该widget的默认布局属性,如果它有一个layout来布局其子widgets,那么这个layout的sizepolicy将被使用;如果该widget没有layout来布局其子widgets,那么它的sizepolicy将不被使用。
默认的policy是Preferred/Preferred。
A.Fixed:
widget的实际尺寸只参考sizeHint()的返回值,不能伸展(grow)和收缩(shrink)B.Minimum:
可以伸展和收缩,不过sizeHint()的返回值规定了widget能缩小到的最小尺寸
C.Maximum:
可以伸展和收缩,不过sizeHint()的返回值规定了widget能伸展到的最大尺寸
D.Preferred:
可以伸展和收缩,但没有优势去获取更大的额外空间使自己的尺寸比sizeHint()的返回值更大
E.Expanding:
可以伸展和收缩,它会尽可能多地去获取额外的空间,也就是比Preferred更具优势
:
可以伸展和收缩,不过sizeHint()的返回值规定了widget能缩小到的最小尺寸,同时它比Preferred更具优势去获取额外空间
:
忽略sizeHint()的作用
5
Minimumsize
最小尺寸
H*w=0*0
6
Maxmumsize
最大尺寸
*
7
Sizeincrement
当用户重新定义窗口尺寸的时候,窗口会以basesize为基准,按照()和()的属性来变化。
width=baseSize().width()+i*sizeIncrement().width();
height=baseSize().height()+j*sizeIncrement().height();
8
Basesize
9
Palette
调色板
设置背景色等
10
Font
设置字体
11
Cursor
鼠标样式
12
MouseTracking
窗口部件跟踪鼠标是否生效
如果鼠标跟踪失效(默认),当鼠标被移动的时候只有在至少一个鼠标按键被按下时,这个窗口部件才会接收鼠标移动事件。
如果鼠标跟踪生效,如果没有按键被按下,这个窗口部件也会接收鼠标移动事件。
13
FocusPolicy
接收键盘输入焦点的方式
Tab、单击
14
CongtextMenuPolicy
语言菜单规则
点击右键就会有菜单弹出
为菜单栏属性,有default,action,custom,prevent,no五种方式
Default:
使用默认菜单
Action:
把部件的action作为菜单显示出来
Custom:
自定义
No:
不构建菜单,菜单句柄交给其父来处理
Prevent:
不构建菜单,菜单句柄不交给其父来处理
参见:
窗口部件中拖入事件是否有效。
这是一个拖拽事件的函数,我们把文件拖拽进程序界面打开,之前必须AcceptDrops(true)了以后拖拽,但是只设置acceptDrops还不够,还需要在dragEnterEvent事件中对拖入的对象进行筛选,判断mimeData的类型是否是你能处理的,如果是,则调用
event->acceptProposedAction()放行。
拖放结束后会产生dropEvent事件,在那里进行最后的放置操作。
总之这是拖拽事件函数的一个筛选事件并放置的函数。
16
ToolTip
鼠标放到控件上,出现提示内容
17
ToolTipDuration
设置信息提示的持续时间,单位是毫秒.
-1
18
StatusTip
在左下角状态栏提示
19
Whatsthis
提供了任何一个部件的简单描述
Shift+F1即可出现
20
LayoutDirection
使布局为靠左或靠右
21
autoFillBackground
背景色是否自动填充
其配色来自platte
22
StyleSheet
编辑样式表
可载入背景图片等
23
Locale
所在地及语言
QLocale对象通过language/country来初始化,
Locale是一个参数集,用于定义用户语言、国家(或地区)以及其他在用户界面中可见的与语言和国家相关的特性,比如日期表示、货币表示等。
24
inputMethodHints
输入限制,键盘布局设置
用于移动端
用于移动端
QWidgets事件
1
键盘按下
2
单击文本框中时发生。
3
在双击控件时发生。
4
按键松开
5
控件获得键盘焦点时
6
控件失去键盘焦点时
7
定时器事件
step1:
启动一个定时器,
step2:
在每个时间间隔后会产生一个QTimeEvent事件,并进入事件循环等待处理;
step3:
当等到QTimeEvent事件处理的时候,会调用timeEvent(QTimeEvent*)事件处理函数来处理这个定时器事件;
step4:
开启定时器后,定时器事件会一直发生着,然后我们可以调用killTimer(int)函数来结束某个定时器,
8
滚动鼠标中键
9
mousePressEvent
鼠标按下
10
mouseReleaseEvent
鼠标松开
11
mouseMoveEvent
鼠标按下移动
12
鼠标单击
click事件,当焦点在些控件上,你点回车之类的就可以激发这个事件!
mouseclick只能是用鼠标单击时发生
13
鼠标双击
14
moveEvent
控件相对其父控件移动时
15
()
重新设置控件尺寸时
16
/leaveEvent
鼠标进入/离开控件区域
17
dragEnter/LeaveEvent
拖拽时鼠标进入控件区域
18
dragMoveEvent
拖拽时光标进去区域或者光标在区域内移动或者按下辅助按键
19
dropEvent
拖拽放下事件,通过鼠标拖拽文本文件到应用程序,打开文本文件,读出其中的内容,显示到窗口中。
20
paintEvent
重绘窗口时(刷新)
21
actionEvent
有行为发生时
(),(),
22
有属性更改时
Changeeventsinclude:
,,,,,
.
,,,,,,,,
23
closeEvent
顶层的控件关闭时
24
hideEvent
控件隐藏事件
如最小化
25
showEvent
控件展示事件
26
contextMenuEvent
处理以Default形式创建的快捷菜单的右击
Qwidgets方法
Qwidgets公共方法过多,暂未整理
包括各项属性的设置、获取属性值、判断的方法。
Forms中的控件布局属性
Forms中控件的布局属性基本相同
序号
名称
描述
备注
1
anchor
在调整控件的父控件大小时如何自动调整控件的大小。
上、下、左、右
Top——表示控件中与父窗体(或父控件)相关的顶部应该保持固定。
2
dock
Dock属性迫使控件紧贴父窗体(或控件)的某个边缘。
虽然Anchor属性也可以实现这一点,但是dock属性使得你能够在父窗体中让子窗体可以在上方(或旁边)互相“堆叠”。
如果某个子窗体改变了大小,其它停驻在它旁边的子窗体也会随之改变。
Top——迫使控件位于父窗体(或控件)的顶部。
如果有同一个父窗体的其它子控件也被设置为停驻在顶部的话,那么控件将在彼此上方相互堆叠。
Bottom、Left、Right、
Fill——迫使控件位于父窗体(或控件)的上方。
如果有同一个父窗体的其它子控件也被设置为停驻在上方的话,那么控件将在彼此上方相互堆叠。
None——表示控件将会正常运转。
3
Location
位置
相对于对话框左上角
4
margin
margin属性包含了marginleft :
距左元素块距离(设置距左内边距);margintop:
距头顶(上)元素块距离(设置距顶部元素块距离);marginright :
距右元素块距离(设置距右元素块距);marginbottom :
底元素块距离(设置距低(下)元素块距)。
5
maxmumsize
最大尺寸width、height
默认为0*0可任意拖动
6
minimumsize
最小尺寸
默认为0*0可任意拖动
7
size
设置当前尺寸width、height
一、Button类控件
Button类控件主要有Pushbutton、ToolButton、RadioButton、CheckBox、CommandLinkButton,依次如下图所示:
在QT中Button类的属性、事件、方法一方面继承自QAbstractButton类,另一方面也有着属于自己的成员。
1.1QAbstractButton类
1.1.1属性
序号
名称
描述
1
autoExclusive
标志自动互斥是否激活
如果是激活的,那么属于同一父窗口的可标记按钮只有一个按钮状态是checked标记的,如果要标记其他的,则当前标记自动取消
用于同一组只能选一个
此属性对于按钮没影响。
主要用于RadioButton、CheckBox、
一般默认默认是false的,而对于radio按钮是true的
2
autoRepeat
设置在按下按钮时是否定期重复发送(),(),and()信号。
初始的delay和重复周期由and定义设定
3
autoRepeatDelay
表示自动重复的初始延时时间。
单位ms
4
autoRepeatInterval
表示自动重复的时间间隔
ms
5
checkable
表示是否可以标记按钮。
True:
点击之后会被标记,再次点击可以取消
False:
鼠标或空格按下时标记,抬起自动取消标记
6
checked
表示设置该按钮是否默认具有标记
QT没有现有的切换按钮或者开关按钮,可以在我们KF中添加实现
7
icon
可以在此处加载图标;
表示icon是否显示在button按钮上
主要有这这八种状态
8
iconsize
设置图标大小
9
shortCut
快捷键
10
text
按钮上显示的字符串
1.1.2事件
序号
名称
描述
1
键盘按下
2
单击文本框中时发生。
3
在双击控件时发生。
4
按键松开
5
actionEvent
有行为发生时
(),(),()
6
控件获得键盘焦点时
7
控件失去键盘焦点时
8
定时器事件
9
mousePressEvent
鼠标按下
10
mouseReleaseEvent
鼠标松开
11
mouseMoveEvent
鼠标按下移动
12
/leaveEvent
鼠标进入/离开控件区域
13
paintEvent
重绘窗口时(刷新)
14
有属性更改时
Changeeventsinclude:
,,,,,
.
,,,,,,,
1.1.3方法
名称
描述
1
()
获取按钮所在的组
2
获取图标的尺寸
3
()
判断当前button是否能够check
4
()
判断当前button是否为选中状态
5
()
判断当前button是否为按下状态
isDown()和isChecked()的不同点:
当用户点击一个切换按钮并且把它选中,按钮首先被按下并且然后被释放变为选中状态。
当用户再次点击(非选中),按钮首先被置为按下状态,然后变为非选中状态(isOn()和isChecked()都为false)。
6
(bool)
设置自动互斥是否激活
7
(bool)
设置按钮是否按下
注意设置这个属性仅仅是改变钮的外观,不会发射任何信号。
8
(bool)
设置按钮是否可以check
9
(int)
设置按钮的AutoRepeatInterval属性
10
(int)
设置按钮的AutoRepeatDelay属性
11
(bool)
设置按钮的AutoRepeat属性
12
(constQIcon&icon)
设置图标
13
(constQKeySequence&key)
设置按钮的快捷键
14
(constQString&text)
设置按钮上的文本
155
setToggleButton()
按钮是否是一个切换按钮。
16
animateClick(intmsec=100)
动态点击并且msec后释放按钮
click函数不会改变钮的外观,它会直接进行单击的处理过程;而animateClick()函数将完全模拟用户按下按的过程,参数msec就是钮被按下的毫秒数。
两者最终都会导致pressed,released和clicked信号的发射。
17
()
执行一次点击
18
(bool)
设置按钮的Checked属性
19
(constQSize&size)
设置按钮的图标尺寸
20
()
切换checkable按钮的状态
Pushbutton控件
Pushbutton控件通常用于执行命令或触发事件。
其外观如图所示:
1.2.1属性
序号
名称
描述
1
QWidgets属性
2
QAbstractButton属性
3
text
按钮上显示的字符串
4
AutoDefault
此属性保持命令按钮是否自动默认按钮
default和autoDefault属性决定了当用户在一个对话框按enter时发生的事情
如果一个属性被设置了default,enter键时则此按钮自动发射pressed信号,除非有autoDefault按钮获取了当前焦点,则autoDefault按钮pressed被发射。
如果对话框dialog只有autoDefault按钮没有default按钮,则当前获取焦点的autoDefault按钮发射pressed,或者没有获取焦点的按钮,则下一个焦点的按钮被发射。
一个对话框只有一个按钮是default默认按钮,此按钮需要额外的边框表示。
QT对话框没找到此限制,可考虑增加
默认按钮default行为只在对话框使用。
获取焦点的按钮总是可以通过键盘的空格键触发点击
5
default
标志此命令按钮是一个默认按钮
6
flat
表示是否显示按钮的border边框
1.2.1事件
序号
名称
描述
备注
1
QAbstractButton事件
2
键盘按下
重写
3
控件获得键盘焦点时
重写
4
控件失去键盘焦点时
重写
5
paintEvent
重绘窗口时(刷新)
重写
1.2.3方法
序号
名称
描述
备注
0
QAbstractButton方法
1
()const
判断是否是默认选中的
2
()const
判断是否是有边框
3
menu
获取按钮的关联菜单
4
(bool)
设置按钮的AutoDefault属性
5
(bool)
设置按钮的Default属性
6
(bool)
设置按钮的Flat属性
7
(QMenu*menu)
将按钮和菜单关联,并使得按钮成为一个菜单按钮
8
()
显示菜单
ToolButton控件
提供了用于命令或选项可以快速访问的按钮,通常可以用在QToolBar里面。
工具按钮和普通的命令按钮不同,通常不显示文本,而显示图标。
1.3.1属性
序号
名称
描述
备注
0
QAbstractButton属性
1
arrowType
按钮是否显示一个arrow代替正常的icon
Qt:
:
NoArrow Qt:
:
UpArrow Qt:
:
DownArrow
Qt:
:
LeftArrow Qt:
:
RightArrow
2
autoRaise
悬浮框,是否变迁
是否自动升高,与扁平Flat相对
3
popupMode
描述弹出菜单属性
DelayedPopup按下按钮一定时间后
MenuButtonPopup这种模式下,工具按钮显示一个特殊的箭头以指示菜单是否存在,按下按钮的箭头部分时显示菜单。
InstantPopup按下工具按钮时菜单显示,无延迟。
这种模式下,按钮自身的动作不触发。
4
toolButtonStyle
表示按钮文本和图片显示位置
ToolButtonIconOnly只显示图标
ToolButtonTextOnly只显示文本
ToolButtonTextBesideIcon文本显示在图标旁边Qt:
:
ToolButtonTextUnderIcon文本显示在图标下边ToolButtonFollowStyle遵循QStyle:
:
StyleHint
1.3.2事件
序号
名称
描述
备注
0
QAbstractButton事件
1
actionEvent
有行为发生时
(),(),
重写
2
定时器事件
重写
3
mousePressEvent
鼠标按下
重写
4
mouseReleaseEvent
鼠标松开
重写
5
leaveEvent
鼠标进入/离开控件区域
重写
6
paintEvent
重绘窗口时(刷新)
重写
7
有属性更改时
重写
1.3.3方法
序号
名称
描述
备注
0
QAbstractButton方法
1
(Qt:
:
ArrowTypetype)
设置按钮的ArrowType属性
2
(boolenable)
设置按钮的AutoRaise属性
3
setMenu
将按钮和菜单关联,并使得按钮成为一个菜单按钮
4
(ToolButtonPopupModemode)
设置按钮的PopupMode属性
5
(QAction*action)
设置默认的QAction,如果有一个默认的action,该action则会定义QToolButton的文本、图标、TooTip等按钮的属性。
6
(Qt:
:
ToolButtonStylestyle)
设置按钮的ToolButtonStyle属性
7
()
显示菜单
RadioButton控件
单选框,通常成组出现,用于提供两个或多个互斥选项。
1.4.1属性
序号
名称
描述
备注
0
QAbstractButton属性
1.4.2事件
序号
名称
描述
备注
1
QAbstractButton事件
2
mouseMoveEvent
鼠标按下移动
重写
3
paintEvent
重绘窗口时(刷新)
重写
1.4.3方法
序号
名称
描述
备注
0
同QAbstractButton方法
CheckBox控件
复选框,与RadioButton的区别是选则模式,单选框提供多选一,复选框提供多选。
1.5.1属性
序号
名称
描述
备注
0
继承QAbstractButton属性
1
tristate
设置复选框是否具有三种选择状态
默认只有两种选中、未选中、无改变
1.5.2事件
序号
名称
描述
备注
1
QAbstractButton事件
2
mouseMoveEvent
鼠标按下移动
重写
3
paintEvent
重绘窗口时(刷新)
重写
1.5.3方法
序号
名称
描述
备注
1
QAbstractButton方法
2
()const
判断是否是三态模式
3
(Qt:
:
CheckStatestate)
设置按钮的check状态
4
(booly=true)
设置按钮的Tristate属性
CommandLinkButton控件
它和RadioButton相似,都是用于在互斥选项中选择一项。
表面上同平面按钮一样,但是CommandLinkButton除带有正常的按钮上的文字描述文本外,默认情况下,它也将携带一个箭头图标,表明按下按钮将打开另一个窗口或页面。
1.6.1属性
序号
名称
描述
备注
0
QAbstractButton属性
1
AutoDefault
此属性保持命令按钮是否自动默认按钮
default和autoDefault属性决定了当用户在一个对话框按enter时发生的事情
如果一个属性被设置了default,enter