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