19QFramePrivate::QFramePrivate()
21 frameStyle(QFrame::NoFrame | QFrame::Plain),
25 leftFrameWidth(0), rightFrameWidth(0),
26 topFrameWidth(0), bottomFrameWidth(0)
196void QFrame::initStyleOption(QStyleOptionFrame *option)
const
202 option->initFrom(
this);
204 int frameShape = d->frameStyle & QFrame::Shape_Mask;
205 int frameShadow = d->frameStyle & QFrame::Shadow_Mask;
206 option->frameShape = Shape(
int(option->frameShape) | frameShape);
207 option->rect = frameRect();
208 switch (frameShape) {
212 case QFrame::StyledPanel:
214 option->lineWidth = d->lineWidth;
215 option->midLineWidth = d->midLineWidth;
220 option->lineWidth = d->frameWidth;
224 if (frameShadow == Sunken)
225 option->state |= QStyle::State_Sunken;
226 else if (frameShadow == Raised)
227 option->state |= QStyle::State_Raised;
307void QFrame::setFrameStyle(
int style)
310 if (!testAttribute(Qt::WA_WState_OwnSizePolicy)) {
313 switch (style & Shape_Mask) {
315 sp = QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed, QSizePolicy::Line);
318 sp = QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum, QSizePolicy::Line);
321 sp = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred, QSizePolicy::Frame);
324 setAttribute(Qt::WA_WState_OwnSizePolicy,
false);
326 d->frameStyle = (
short)style;
328 d->updateFrameWidth();
447QRect QFrame::frameRect()
const
450 QRect fr = contentsRect();
451 fr.adjust(-d->leftFrameWidth, -d->topFrameWidth, d->rightFrameWidth, d->bottomFrameWidth);
455void QFrame::setFrameRect(
const QRect &r)
458 QRect cr = r.isValid() ? r : rect();
459 cr.adjust(d->leftFrameWidth, d->topFrameWidth, -d->rightFrameWidth, -d->bottomFrameWidth);
460 setContentsMargins(cr.left(), cr.top(), rect().right() - cr.right(), rect().bottom() - cr.bottom());
518bool QFrame::event(QEvent *e)
520 if (e->type() == QEvent::ParentChange)
521 d_func()->updateFrameWidth();
522 bool result = QWidget::event(e);
524 if (e->type() == QEvent::Polish)
525 d_func()->updateFrameWidth();