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 *)//重繪事件