A letter box widget. More...
#include <qxtletterboxwidget.h>
Public Slots | |
void | resizeWidget () |
Public Member Functions | |
QxtLetterBoxWidget (QWidget *parent=0) | |
~QxtLetterBoxWidget () | |
QColor | backgroundColor () const |
void | setBackgroundColor (const QColor &color) |
void | clearBackgroundColor () |
int | margin () const |
void | setMargin (int margin) |
QWidget * | widget () const |
void | setWidget (QWidget *widget) |
uint | resizeDelay () const |
void | setResizeDelay (uint delay) |
Protected Member Functions | |
void | resizeEvent (QResizeEvent *event) |
Properties | |
QColor | backgroundColor |
This property holds the background color. | |
int | margin |
This property holds the margin. | |
uint | resizeDelay |
This property holds the delay of resize. | |
Friends | |
class | QxtLetterBoxWidgetPrivate |
A letter box widget.
QxtLetterBoxWidget preserves the aspect ratio of its content widget.
Use QWidget::sizeIncrement to define the aspect ratio:
QxtLetterBoxWidget letterBox; widget->setSizeIncrement(16, 9); letterBox.setWidget(widget); letterBox.show();
Definition at line 34 of file qxtletterboxwidget.h.
QxtLetterBoxWidget::QxtLetterBoxWidget | ( | QWidget * | parent = 0 ) |
Constructs a new QxtLetterBoxWidget with parent.
Definition at line 54 of file qxtletterboxwidget.cpp.
References QXT_INIT_PRIVATE, and resizeWidget().
: QFrame(parent) { QXT_INIT_PRIVATE(QxtLetterBoxWidget); connect(&qxt_d().timer, SIGNAL(timeout()), this, SLOT(resizeWidget())); }
QxtLetterBoxWidget::~QxtLetterBoxWidget | ( | ) |
QColor QxtLetterBoxWidget::backgroundColor | ( | ) | const |
void QxtLetterBoxWidget::clearBackgroundColor | ( | ) |
Definition at line 90 of file qxtletterboxwidget.cpp.
References setBackgroundColor().
{ setBackgroundColor(QColor()); setAutoFillBackground(false); }
int QxtLetterBoxWidget::margin | ( | ) | const |
Referenced by resizeWidget(), and setMargin().
uint QxtLetterBoxWidget::resizeDelay | ( | ) | const |
Referenced by resizeEvent().
void QxtLetterBoxWidget::resizeEvent | ( | QResizeEvent * | event ) | [protected] |
Definition at line 185 of file qxtletterboxwidget.cpp.
References resizeDelay(), and resizeWidget().
{ QFrame::resizeEvent(event); if (resizeDelay() > 0) qxt_d().timer.start(); else resizeWidget(); }
void QxtLetterBoxWidget::resizeWidget | ( | ) | [slot] |
Resizes the content widget.
Definition at line 169 of file qxtletterboxwidget.cpp.
References margin().
Referenced by QxtLetterBoxWidget(), resizeEvent(), setMargin(), and setWidget().
{ if (qxt_d().center) { QSize s = qxt_d().center->sizeIncrement(); s.scale(size(), Qt::KeepAspectRatio); s -= QSize(2 * qxt_d().margin, 2 * qxt_d().margin); s = QLayout::closestAcceptableSize(qxt_d().center, s); QRect r = QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, s, rect()); qxt_d().center->setGeometry(r); } }
void QxtLetterBoxWidget::setBackgroundColor | ( | const QColor & | color ) |
Definition at line 82 of file qxtletterboxwidget.cpp.
Referenced by clearBackgroundColor().
{
QPalette pal = palette();
pal.setColor(QPalette::Window, color);
setPalette(pal);
setAutoFillBackground(true);
}
void QxtLetterBoxWidget::setMargin | ( | int | margin ) |
Definition at line 107 of file qxtletterboxwidget.cpp.
References margin(), and resizeWidget().
{ if (qxt_d().margin != margin) { qxt_d().margin = margin; resizeWidget(); } }
void QxtLetterBoxWidget::setResizeDelay | ( | uint | delay ) |
Definition at line 161 of file qxtletterboxwidget.cpp.
{ qxt_d().timer.setInterval(delay); }
void QxtLetterBoxWidget::setWidget | ( | QWidget * | widget ) |
Sets the given widget to be the letter box's widget.
Definition at line 135 of file qxtletterboxwidget.cpp.
References resizeWidget(), and widget().
{ if (qxt_d().center && qxt_d().center != widget) qxt_d().center->deleteLater(); qxt_d().center = widget; if (widget) { widget->setParent(this); resizeWidget(); } }
QWidget * QxtLetterBoxWidget::widget | ( | ) | const |
Returns the widget for the letter box. This function returns zero if the widget has not been set.
Definition at line 122 of file qxtletterboxwidget.cpp.
Referenced by setWidget().
{
return qxt_d().center;
}
friend class QxtLetterBoxWidgetPrivate [friend] |
Definition at line 37 of file qxtletterboxwidget.h.
QColor QxtLetterBoxWidget::backgroundColor [read, write] |
This property holds the background color.
This property is provided for convenience. This property corresponds to QPalette::Window.
Definition at line 37 of file qxtletterboxwidget.h.
int QxtLetterBoxWidget::margin [read, write] |
This property holds the margin.
The default value is 0.
Definition at line 39 of file qxtletterboxwidget.h.
uint QxtLetterBoxWidget::resizeDelay [read, write] |
This property holds the delay of resize.
The default value is 0 which means immediate resize.
Using a short resize delay might be useful if the widget is complex and resizing it is expensive.
Definition at line 40 of file qxtletterboxwidget.h.