主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 |
QFrame类是有框架的窗口部件的基类。 详情请见……
#include <qframe.h>
继承了QWidget。
被QGroupBox、QScrollView、QDockWindow、QGrid、QHBox、QLabel、QLCDNumber、QLineEdit、QMenuBar、QPopupMenu、QProgressBar、QSplitter、QtTableView和QWidgetStack继承。
它绘制框架并且调用一个虚函数drawContents()来填充这个框架。这个函数是被子类重新实现的。这里至少还有两个有用的函数:drawFrame()和frameChanged()。
QPopupMenu使用这个来把菜单“升高”,高于周围屏幕。QProgressBar有“凹陷”的外观。QLabel有平坦的外观。这些有框架的窗口部件可以被改变。
QLabel label(...); label.setFrameStyle( QFrame::Panel | QFrame::Raised ); label.setLineWidth( 2 ); QProgressBar pbar(...); 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::Shape、lineWidth()和midLineWidth()相互作用。类文档中的框架的图片描绘的比这些词语更好。
也可以参考QFrame::Shape、lineWidth和midLineWidth。
这个枚举类型定义了QFrame的框架所使用的外形。当前定义的效果有:
当它不调用QStyle时,Shape和QFrame::Shadow、lineWidth()和midLineWidth()相互作用来创建整个结果。类文档中的框架的图片描绘的比这些词语更好。
也可以参考QFrame::Shadow、QFrame::style()和QStyle::drawPrimitive()。
parent、name和f参数被传递给QWidget的构造函数。
返回框架内的矩形。详细情况请参考“contentsRect”属性。
当你得到QPainter时,它已经被打开,并且在你离开时,它也必须是打开的。绘制工具的转换在真个过程中是被关闭的。如果你转换绘制工具,记得考虑框架并且在返回前重置转换。
这个函数在子类中被重新实现用来绘制框架中的一些东西。它只能在contentsRect()内绘制。默认函数什么都不做。
也可以参考contentsRect和QPainter::setClipRect()。
在QLabel、a href="qlcdnumber.html#drawContents">QLCDNumber、QMenuBar和QPopupMenu中重新实现。
这个函数是虚函数,但通常情况下你不需要重新实现它。如果你要做,注意QPainter已经被打开并且必须保持打开的状态。
也可以参考frameRect、contentsRect、drawContents()、a href="#frameStyle">frameStyle()和palette。
这个函数在子类中可以被重新实现,它需要知道什么时候框架属性发生变化。
默认实现是调用update()。
返回框架矩形。详细情况请参考“frameRect”属性。
返回来自框架风格的框架阴影值。详细情况请参考“frameShadow”属性。
返回来自框架风格的框架外形值。详细情况请参考“frameShape”属性。
默认值是QFrame::NoFrame。
也可以参考setFrameStyle()、frameShape和frameShadow。
返回所绘制的框架的宽度。详细情况请参考“frameWidth”属性。
返回线宽。详细情况请参考“lineWidth”属性。
返回边白的宽度。详细情况请参考“margin”属性。
返回中间线的宽度。详细情况请参考“midLineWidth”属性。
绘制框架和内容。
打开框架上的绘制工具并且调用drawFrame(),然后是drawContents()。
实例:life/life.cpp和qfd/fontdisplayer.cpp。
从QWidget中重新实现的。
在a href="qttableview.html#paintEvent">QtTableView中被重新实现。
对于被重新定义大小的窗口部件,调整框架矩形。框架矩形是弹性的,并且周围的区域是固定的。
结果框架矩形也许是零或者无效。你可以使用setMinimumSize()来避免这种可能。
如果框架矩形已经是一个零矩形,那么将不会做任何事。
实例:life/life.cpp。
从QWidget中重新实现的。
设置框架矩形。详细情况请参考“frameRect”属性。
设置来自框架风格的框架阴影值。详细情况请参考“frameShadow”属性。
设置来自框架风格的框架外形值。详细情况请参考“frameShape”属性。
style是框架外形和框架阴影风格的位或操作。详细情况请参考类文档中的框架的图片。
框架外形有:
阴影风格有:
如果被指定的中间线宽大于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。
设置线宽。详细情况请参考“lineWidth”属性。
设置边白的宽度。详细情况请参考“margin”属性。
设置中间线的宽度。详细情况请参考“midLineWidth”属性。
这个属性保存的是框架内的矩形。
使用contentsRect()来得到这个属性值。
也可以参考frameRect和drawContents()。
这个属性保存的是框架矩形。
框架矩形是被画的框架所在的矩形。默认情况下,这是整个窗口部件。设置这个属性不会导致窗口部件更新。
如果这个属性被设置为零矩形(比如QRect(0, 0, 0, 0)),那么框架矩形将会等于窗口部件矩形。
也可以参考contentsRect。
使用setFrameRect()来设置这个属性值并且使用frameRect()来得到这个属性值。
这个属性保存的是来自框架风格的框架阴影值。
使用setFrameShadow()来设置这个属性值并且使用frameShadow()来得到这个属性值。
也可以参考frameStyle()和frameShape。
这个属性用来操存的是来自框架风格的框架外形值。
使用setFrameShape()来设置这个属性值并且使用frameShape()来得到这个属性值。
也可以参考frameStyle()和frameShadow。
这个属性保存的是被绘制的框架的宽度。
注意框架宽度依赖于框架风格,线宽和中间线宽。比如,NoFrame风格下,框架宽度为0,而Panel风格下,框架宽度和线宽相同。框架宽度也包括边白。
也可以参考lineWidth、midLineWidth、frameStyle()和margin。
使用frameWidth()来得到这个属性值。
This property holds the line width. 这个属性保存的是线宽。
注意HLine和VLine的总线宽由frameWidth()给定,而不是lineWidth()。
默认值为1。
也可以参考midLineWidth和frameWidth。
使用setLineWidth()来设置这个属性值并且使用lineWidth()来得到这个属性值。
这个属性保存的是边白的宽度。
边白是框架最里面的像素和contentsRect()最外面的像素之间的区域。它被包含在frameWidth()中。
边白是根据backgroundMode()被填充的。
默认值为0。
也可以参考lineWidth和frameWidth。
使用setMargin()来设置这个属性值并且使用margin()来得到这个属性值。
这个属性保存的是中间线的宽度。
默认值为0。
也可以参考lineWidth和frameWidth。
使用setMidLineWidth()来设置这个属性值并且使用midLineWidth()来得到这个属性值。
这个文件是Qt工具包一部分。 版权所有 © 1995-2002 Trolltech。保留所有权利。
Copyright © 2002 Trolltech | Trademarks | 译者:Cavendish | Qt 3.0.5版
|