QFrame类.docx
- 文档编号:5723729
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:9
- 大小:25.40KB
QFrame类.docx
《QFrame类.docx》由会员分享,可在线阅读,更多相关《QFrame类.docx(9页珍藏版)》请在冰豆网上搜索。
QFrame类
QFrame类参考
QFrame类是有框架的窗口部件的基类。
详情请见……
#include
继承了QWidget。
被QGroupBox、QScrollView、QDockWindow、QGrid、QHBox、QLabel、QLCDNumber、QLineEdit、QMenuBar、QPopupMenu、QProgressBar、QSplitter、QtTableView和QWidgetStack继承。
所有成员函数的列表。
公有成员
∙QFrame (QWidget * parent=0,const char * name=0,WFlags f=0)
∙int frameStyle ()const
∙virtualvoid setFrameStyle (int style)
∙int frameWidth ()const
∙QRect contentsRect ()const
∙enum Shape {NoFrame=0,Box=0x0001,Panel=0x0002,WinPanel=0x0003,HLine=0x0004,VLine=0x0005,StyledPanel=0x0006,PopupPanel=0x0007,MenuBarPanel=0x0008,ToolBarPanel=0x0009,LineEditPanel=0x000a,TabWidgetPanel=0x000b,MShape=0x000f}
∙enum Shadow {Plain=0x0010,Raised=0x0020,Sunken=0x0030,MShadow=0x00f0}
∙Shape frameShape ()const
∙void setFrameShape (Shape)
∙Shadow frameShadow ()const
∙void setFrameShadow (Shadow)
∙int lineWidth ()const
∙virtualvoid setLineWidth (int)
∙int margin ()const
∙virtualvoid setMargin (int)
∙int midLineWidth ()const
∙virtualvoid setMidLineWidth (int)
∙QRect frameRect ()const
∙virtualvoid setFrameRect (constQRect&)
属性
∙QRect contentsRect -框架内的矩形 (只读)
∙QRect frameRect -框架矩形
∙Shadow frameShadow -来自框架风格的框架阴影值
∙Shape frameShape -来自框架风格的框架外形值
∙int frameWidth -被绘制的框架的宽度 (只读)
∙int lineWidth -线宽
∙int margin -边白的宽度
∙int midLineWidth -中间的线的宽度
保护成员
∙virtualvoid paintEvent (QPaintEvent * event)
∙virtualvoid resizeEvent (QResizeEvent * e)
∙virtualvoid drawFrame (QPainter * p)
∙virtualvoid drawContents (QPainter*)
∙virtualvoid frameChanged ()
详细描述
QFrame类是有框架的窗口部件的基类。
它绘制框架并且调用一个虚函数drawContents()来填充这个框架。
这个函数是被子类重新实现的。
这里至少还有两个有用的函数:
drawFrame()和frameChanged()。
QPopupMenu使用这个来把菜单“升高”,高于周围屏幕。
QProgressBar有“凹陷”的外观。
QLabel有平坦的外观。
这些有框架的窗口部件可以被改变。
QLabellabel(...);
label.setFrameStyle(QFrame:
:
Panel|QFrame:
:
Raised);
label.setLineWidth
(2);
QProgressBarpbar(...);
label.setFrameStyle(QFrame:
:
NoFrame);
QFrame类也能够直接被用来创建没有任何内容的简单框架,尽管通常情况下,你要用到QHBox或QVBox,因为它们可以自动的布置你放到框架中的窗口部件。
框架窗口部件有四个属性:
frameStyle()、lineWidth()、midLineWidth()和margin()。
框架风格由框架外形和阴影风格决定。
框架外形有NoFrame、Box、Panel、StyledPanel、PopupPanel、WinPanel、ToolBarPanel、MenuBarPanel、HLine和VLine,阴影风格有Plain、Raised和Sunken。
线宽就是框架边界的宽度。
中间线宽指定的是在框架中间的另外一条线的宽度,它使用第三种颜色来得到一个三维的效果。
注意中间线只有在Box、HLine和VLine这些凸起和凹陷的框架中才被绘制。
边白就是框架和框架内容之间的间隙。
这个表显示的是风格和宽度的绝大多数有用的组合(和一些没有用处的):
也可以参考抽象窗口部件类。
成员类型文档
QFrame:
:
Shadow
这个枚举类型定义了QFrame的框架所使用的三维效果。
当前定义的效果有:
∙QFrame:
:
Plain -框架和内容看来和周围一样高
∙QFrame:
:
Raised -框架和内容看起来凸起
∙QFrame:
:
Sunken -框架和内容看起来凹陷
∙QFrame:
:
MShadow -内部的,对于阴影的掩码
Shadow和QFrame:
:
Shape、lineWidth()和midLineWidth()相互作用。
类文档中的框架的图片描绘的比这些词语更好。
也可以参考QFrame:
:
Shape、lineWidth和midLineWidth。
QFrame:
:
Shape
这个枚举类型定义了QFrame的框架所使用的外形。
当前定义的效果有:
∙NoFrame-QFrame不画任何东西
∙Box-QFrame在它的内容周围画一个框
∙Panel-QFrame画一个平板使内容看起来凸起或者凹陷
∙WinPanel-像Panel,但QFrame绘制三维效果的方式和MicrosoftWindows95(及其它)的一样
∙ToolBarPanel-QFrame调用QStyle:
:
drawToolBarPanel()
∙MenuBarPanel-QFrame调用QStyle:
:
drawMenuBarPanel()
∙HLine-QFrame绘制一个水平线,但没有框任何东西(作为分隔是有用的)
∙VLine-QFrame绘制一个竖直线,但没有框任何东西(作为分隔是有用的)
∙StyledPanel-QFrame调用QStyle:
:
drawPanel()
∙PopupPanel-QFrame调用QStyle:
:
drawPopupPanel()
当它不调用QStyle时,Shape和QFrame:
:
Shadow、lineWidth()和midLineWidth()相互作用来创建整个结果。
类文档中的框架的图片描绘的比这些词语更好。
也可以参考QFrame:
:
Shadow、QFrame:
:
style()和QStyle:
:
drawPrimitive()。
成员函数文档
QFrame:
:
QFrame( QWidget * parent=0,const char * name=0,WFlags f=0)
构造一个框架风格为NoFrame并且1像素框架宽度的框架窗口部件。
parent、name和f参数被传递给QWidget的构造函数。
QRect QFrame:
:
contentsRect()const
返回框架内的矩形。
详细情况请参考“contentsRect”属性。
void QFrame:
:
drawContents( QPainter *) [虚保护]
绘制框架内容的虚函数。
当你得到QPainter时,它已经被打开,并且在你离开时,它也必须是打开的。
绘制工具的转换在真个过程中是被关闭的。
如果你转换绘制工具,记得考虑框架并且在返回前重置转换。
这个函数在子类中被重新实现用来绘制框架中的一些东西。
它只能在contentsRect()内绘制。
默认函数什么都不做。
也可以参考contentsRect和QPainter:
:
setClipRect()。
在QLabel、ahref="qlcdnumber.html#drawContents">QLCDNumber、QMenuBar和QPopupMenu中重新实现。
void QFrame:
:
drawFrame( QPainter * p) [虚保护]
使用绘制工具p和当前框架属性和颜色组绘制框架。
框架内的矩形不受影响。
这个函数是虚函数,但通常情况下你不需要重新实现它。
如果你要做,注意QPainter已经被打开并且必须保持打开的状态。
也可以参考frameRect、contentsRect、drawContents()、ahref="#frameStyle">frameStyle()和palette。
void QFrame:
:
frameChanged() [虚保护]
当框架风格、线宽和中间线宽发生改变时,这个虚函数被调用。
这个函数在子类中可以被重新实现,它需要知道什么时候框架属性发生变化。
默认实现是调用update()。
QRect QFrame:
:
frameRect()const
返回框架矩形。
详细情况请参考“frameRect”属性。
Shadow QFrame:
:
frameShadow()const
返回来自框架风格的框架阴影值。
详细情况请参考“frameShadow”属性。
Shape QFrame:
:
frameShape()const
返回来自框架风格的框架外形值。
详细情况请参考“frameShape”属性。
int QFrame:
:
frameStyle()const
返回框架风格。
默认值是QFrame:
:
NoFrame。
也可以参考setFrameStyle()、frameShape和frameShadow。
实例:
scrollview/scrollview.cpp。
int QFrame:
:
frameWidth()const
返回所绘制的框架的宽度。
详细情况请参考“frameWidth”属性。
int QFrame:
:
lineWidth()const
返回线宽。
详细情况请参考“lineWidth”属性。
int QFrame:
:
margin()const
返回边白的宽度。
详细情况请参考“margin”属性。
int QFrame:
:
midLineWidth()const
返回中间线的宽度。
详细情况请参考“midLineWidth”属性。
void QFrame:
:
paintEvent( QPaintEvent * event) [虚保护]
处理绘制事件event。
绘制框架和内容。
打开框架上的绘制工具并且调用drawFrame(),然后是drawContents()。
实例:
life/life.cpp和qfd/fontdisplayer.cpp。
从QWidget中重新实现的。
在ahref="qttableview.html#paintEvent">QtTableView中被重新实现。
void QFrame:
:
resizeEvent( QResizeEvent * e) [虚保护]
处理重定义大小事件e。
对于被重新定义大小的窗口部件,调整框架矩形。
框架矩形是弹性的,并且周围的区域是固定的。
结果框架矩形也许是零或者无效。
你可以使用setMinimumSize()来避免这种可能。
如果框架矩形已经是一个零矩形,那么将不会做任何事。
实例:
life/life.cpp。
从QWidget中重新实现的。
void QFrame:
:
setFrameRect(const QRect &) [虚]
设置框架矩形。
详细情况请参考“frameRect”属性。
void QFrame:
:
setFrameShadow( Shadow )
设置来自框架风格的框架阴影值。
详细情况请参考“frameShadow”属性。
void QFrame:
:
setFrameShape( Shape )
设置来自框架风格的框架外形值。
详细情况请参考“frameShape”属性。
void QFrame:
:
setFrameStyle(int style) [虚]
设置框架风格为style。
style是框架外形和框架阴影风格的位或操作。
详细情况请参考类文档中的框架的图片。
框架外形有:
∙NoFrame不绘制任何东西。
自然地,如果你使用这个,你就不用指定阴影风格。
∙Box绘制矩形框。
内容看起来和周围的屏幕一样高,但是边界本身也许凸起或凹陷。
∙Panel绘制矩形凸起或凹陷的平板。
∙StyledPanel绘制一个依赖于当前GUI风格的矩形平板。
它可能是凸起的,也可能是凹陷的。
∙PopupPanel是用来绘制用于弹出窗口的框架。
它的外观也依赖于当前GUI风格,通常和StyledPanel一样。
∙ToolBarPanel是用来绘制用于工具条的框架。
它的外观也依赖于当前GUI风格。
∙MenuBarPanel是用来绘制用于菜单条的框架。
它的外观也依赖于当前GUI风格。
∙LineEditPanel是用来绘制用于行编辑的框架。
它的外观也依赖于当前GUI风格。
∙TabWidgetPanel是用来绘制用于Tab窗口部件的框架。
它的外观也依赖于当前GUI风格。
∙WinPanel绘制一个和Windows95中一样的凸起或凹陷的矩形平板。
指定这个外形设置线宽为2像素。
WinPanel的提供是为了兼容性。
为了使GUI风格独立,我们建议使用StyledPanel替换它。
∙HLine绘制一条水平线(垂直中央)。
∙VLine绘制一条垂直线(水平中央)。
阴影风格有:
∙Plain使用调色板的前景颜色绘制(没有任何三维效果)。
∙Raised使用当前颜色组的亮和暗颜色绘制三维的凸起线。
∙Sunken使用当前颜色组的亮和暗颜色绘制三维的凹陷线。
如果被指定的中间线宽大于0,在Raised或Sunken、Box÷HLine和VLine框架中会被绘制一条另外的线。
当前颜色组的中间颜色被用于绘制中间线。
也可以参考Illustration、frameStyle()、colorGroup和QColorGroup。
实例:
cursor/cursor.cpp、layout/layout.cpp、listboxcombo/listboxcombo.cpp、rangecontrols/rangecontrols.cpp、scrollview/scrollview.cpp、tabdialog/tabdialog.cpp和tictac/tictac.cpp。
void QFrame:
:
setLineWidth(int) [虚]
设置线宽。
详细情况请参考“lineWidth”属性。
void QFrame:
:
setMargin(int) [虚]
设置边白的宽度。
详细情况请参考“margin”属性。
void QFrame:
:
setMidLineWidth(int) [虚]
设置中间线的宽度。
详细情况请参考“midLineWidth”属性。
属性文档
QRect contentsRect
这个属性保存的是框架内的矩形。
使用contentsRect()来得到这个属性值。
也可以参考frameRect和drawContents()。
QRect frameRect
这个属性保存的是框架矩形。
框架矩形是被画的框架所在的矩形。
默认情况下,这是整个窗口部件。
设置这个属性不会导致窗口部件更新。
如果这个属性被设置为零矩形(比如QRect(0,0,0,0)),那么框架矩形将会等于窗口部件矩形。
也可以参考contentsRect。
使用setFrameRect()来设置这个属性值并且使用frameRect()来得到这个属性值。
Shadow frameShadow
这个属性保存的是来自框架风格的框架阴影值。
使用setFrameShadow()来设置这个属性值并且使用frameShadow()来得到这个属性值。
也可以参考frameStyle()和frameShape。
Shape frameShape
这个属性用来操存的是来自框架风格的框架外形值。
使用setFrameShape()来设置这个属性值并且使用frameShape()来得到这个属性值。
也可以参考frameStyle()和frameShadow。
int frameWidth
这个属性保存的是被绘制的框架的宽度。
注意框架宽度依赖于框架风格,线宽和中间线宽。
比如,NoFrame风格下,框架宽度为0,而Panel风格下,框架宽度和线宽相同。
框架宽度也包括边白。
也可以参考lineWidth、midLineWidth、frameStyle()和margin。
使用frameWidth()来得到这个属性值。
int lineWidth
Thispropertyholdsthelinewidth.这个属性保存的是线宽。
注意HLine和VLine的总线宽由frameWidth()给定,而不是lineWidth()。
默认值为1。
也可以参考midLineWidth和frameWidth。
使用setLineWidth()来设置这个属性值并且使用lineWidth()来得到这个属性值。
int margin
这个属性保存的是边白的宽度。
边白是框架最里面的像素和contentsRect()最外面的像素之间的区域。
它被包含在frameWidth()中。
边白是根据backgroundMode()被填充的。
默认值为0。
也可以参考lineWidth和frameWidth。
使用setMargin()来设置这个属性值并且使用margin()来得到这个属性值。
int midLineWidth
这个属性保存的是中间线的宽度。
默认值为0。
也可以参考lineWidth和frameWidth。
使用setMidLineWidth()来设置这个属性值并且使用midLineWidth()来得到这个属性值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QFrame
![提示](https://static.bdocx.com/images/bang_tan.gif)