QFrame与QWidget的区别:
QFrame是基本控件的基类,QWidget是QFrame基类。
QWidget类是所有用户界面对象的基类。
Widget是用户界面的基本单元:它从窗口系统接收鼠标,键盘和其他事件,并在屏幕上绘制自己。
每个Widget都是矩形的,它们按照Z-order进行排序。
QFrame类:
1.公有类型
enum Shadow { Plain, Raised, Sunken } enum Shape { NoFrame, Box, Panel, StyledPanel, ..., WinPanel } enum StyleMask { Shadow_Mask, Shape_Mask }
2.属性
frameRect : QRect//控件矩形 frameWidth : const int//框架的宽度 frameShadow : Shadow//有无阴影 lineWidth : int//线宽度 frameShape : Shape//框架形状 midLineWidth : int//中间线的宽度
3.公有函数
QFrame(QWidget * parent = 0, Qt::WindowFlags f = 0)//构造函数,设置主窗口和框架类型 ~QFrame()//析构函数 QRect frameRect() const//返回 框架的rect Shadow frameShadow() const Shape frameShape() const int QFrame::frameStyle() const//返回框架风格,类似frameShadow() int frameWidth() const int lineWidth() const int midLineWidth() const void setFrameRect(const QRect &) void setFrameShadow(Shadow) void setFrameShape(Shape) void setFrameStyle(int style) void setLineWidth(int) void setMidLineWidth(int)
3.重写公有函数
virtual QSize sizeHint() const//返回尺寸大小
4.保护函数
void initStyleOption(QStyleOptionFrame * option) const//初始化画一个框架
5.公有保护函数
virtual void changeEvent(QEvent * ev)//事件状态改变 virtual bool event(QEvent * e)//接收事件 virtual void paintEvent(QPaintEvent *)//重绘事件