QFrame类是有框架的窗口部件的基类。

QPopupMenu使用这个来把菜单“升高”,高于周围屏幕。QProgressBar有“凹陷”的外观。QLabel有平坦的外观。这些有框架的窗口部件可以被改变。

 



QLabel label(...);
label.setFrameStyle(QFrame::Panel | QFrame::Raised);
label.setLineWidth(2);
QProgressBar pbar(...);
label.setFrameStyle(QFrame::NoFrame);


 

 

QFrame类也可以直接被用作创建一个简单的框架,而没有任何内容。

 

框架类型可以通过 frame shape 和 shadow style 这两个属性来指定,以区别其他控件;

这些属性可以通过setFrameStyle()来一起设置,frameStyle()函数读取

 

1、frame shape包括: NoFrame, Box, Panel, StyledPanel, HLine ,VLine;

enum QFrame::Shape


Constant



Value



Description



QFrame::NoFrame



0



​QFrame​​ draws nothing不画任何



QFrame::Box



0x0001



​QFrame​​ draws a box around its contents内容四周有框



QFrame::Panel



0x0002



​QFrame​​ draws a panel to make the contents appear raised or sunken有平台使内容看起来凹起或下沉



QFrame::StyledPanel



0x0006



draws a rectangular panel with a look that depends on the current GUI style. It can be raised or sunken.

依据当前GUI类型,画一个矩形面板,可以凹起或下沉



QFrame::HLine



0x0004



​QFrame​​ draws a horizontal line that frames nothing (useful as separator)画一个没有框架的水平线(用作分隔符)



QFrame::VLine



0x0005



​QFrame​​ draws a vertical line that frames nothing (useful as separator) 画一个没有框架的垂直线(用作分隔符)



QFrame::WinPanel



0x0003



draws a rectangular panel that can be raised or sunken like those in Windows 95. Specifying this shape sets the line width to 2 pixels. WinPanel is provided for compatibility. For GUI style independence we recommend using StyledPanel instead.

画类似win95的矩形面板,指定形状线宽2象素。


 

 

2、shadow styles 包括 Plain, Raised ,Sunken.

 

3、一个框架控件有三个属性,描述边框的宽度:lineWidth,midLineWidth,frameWidth

 

线宽就是框架边界的宽度

中间线宽指定的是在框架中间的另外一条线的宽度,它使用第三种颜色来得到一个三维的效果。注意中间线只有在Box、HLine和VLine这些凸起和凹陷的框架中才被绘制。

框架宽度决定于框架类型,frameWidth()函数根据当前使用的style类型获得值