En esta página

QFrame Class

La clase QFrame es la clase base de los widgets que pueden tener un marco. Más...

Cabecera: #include <QFrame>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QWidget
Heredado de:

QAbstractScrollArea, QLabel, QLCDNumber, QSplitter, QStackedWidget, y QToolBox

Tipos públicos

enum Shadow { Plain, Raised, Sunken }
enum Shape { NoFrame, Box, Panel, StyledPanel, HLine, …, WinPanel }
enum StyleMask { Shadow_Mask, Shape_Mask }

Propiedades

Funciones públicas

QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QFrame()
QRect frameRect() const
QFrame::Shadow frameShadow() const
QFrame::Shape frameShape() const
int frameStyle() const
int frameWidth() const
int lineWidth() const
int midLineWidth() const
void setFrameRect(const QRect &)
void setFrameShadow(QFrame::Shadow)
void setFrameShape(QFrame::Shape)
void setFrameStyle(int style)
void setLineWidth(int)
void setMidLineWidth(int)

Funciones públicas reimplementadas

virtual QSize sizeHint() const override

Funciones protegidas

virtual void initStyleOption(QStyleOptionFrame *option) const

Funciones protegidas reimplementadas

virtual void changeEvent(QEvent *ev) override
virtual bool event(QEvent *e) override
virtual void paintEvent(QPaintEvent *) override

Descripción detallada

QMenu utiliza esto para "elevar" el menú por encima de la pantalla circundante. QProgressBar tiene un aspecto "hundido". QLabel tiene un aspecto plano. Los marcos de estos widgets pueden cambiarse.

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

QProgressBar pbar(...);
label.setFrameStyle(QFrame::NoFrame);

La clase QFrame también se puede utilizar directamente para crear marcos simples sin ningún contenido.

El estilo del marco se especifica mediante frame shape y shadow style que se utiliza para separar visualmente el marco de los widgets circundantes. Estas propiedades pueden establecerse juntas utilizando la función setFrameStyle() y leerse con frameStyle().

Las formas de marco son NoFrame, Box, Panel, StyledPanel, HLine y VLine; los estilos de sombra son Plain, Raised y Sunken.

Un widget de marco tiene tres atributos que describen el grosor del borde: lineWidth, midLineWidth, y frameWidth.

  • El ancho de línea es el ancho del borde del marco. Puede modificarse para personalizar el aspecto del marco.
  • La anchura de la línea media especifica la anchura de una línea extra en medio del marco, que utiliza un tercer color para obtener un efecto 3D especial. Observe que sólo se dibuja una línea intermedia en los marcos Box, HLine y VLine que están elevados o hundidos.
  • La anchura del marco viene determinada por el estilo del marco, y la función frameWidth() se utiliza para obtener el valor definido para el estilo utilizado.

El margen entre el marco y el contenido del marco puede personalizarse con la función QWidget::setContentsMargins().

Esta tabla muestra algunas de las combinaciones de estilos y anchos de línea:

Tabla de estilos de marcos

Miembro Tipo Documentación

enum QFrame::Shadow

Este tipo enum define los tipos de sombra que se utilizan para dar un efecto 3D a los fotogramas.

ConstanteValorDescripción
QFrame::Plain0x0010el marco y el contenido aparecen nivelados con el entorno; dibuja utilizando el color de la paleta QPalette::WindowText (sin ningún efecto 3D)
QFrame::Raised0x0020el marco y el contenido aparecen elevados; dibuja una línea 3D elevada utilizando los colores claros y oscuros del grupo de colores actual
QFrame::Sunken0x0030el marco y el contenido aparecen hundidos; dibuja una línea 3D hundida utilizando los colores claros y oscuros del grupo de colores actual.

Shadow interactúa con QFrame::Shape, el lineWidth() y el midLineWidth(). Véase la imagen de los marcos en la documentación de la clase principal.

Véase también QFrame::Shape, lineWidth(), y midLineWidth().

enum QFrame::Shape

Este tipo enum define las formas de marco disponibles.

ConstanteValorDescripción
QFrame::NoFrame0QFrame no dibuja nada
QFrame::Box0x0001QFrame dibuja una caja alrededor de su contenido
QFrame::Panel0x0002QFrame dibuja un panel para que el contenido aparezca elevado o hundido
QFrame::StyledPanel0x0006dibuja un panel rectangular con un aspecto que depende del estilo GUI actual. Puede estar elevado o hundido.
QFrame::HLine0x0004QFrame dibuja una línea horizontal que no enmarca nada (útil como separador)
QFrame::VLine0x0005QFrame dibuja una línea vertical que no enmarca nada (útil como separador)
QFrame::WinPanel0x0003dibuja un panel rectangular que puede ser elevado o hundido como los de Windows 2000. Al especificar esta forma, el ancho de línea se fija en 2 píxeles. WinPanel se proporciona por compatibilidad. Para independencia del estilo GUI recomendamos usar StyledPanel en su lugar.

Cuando no llama a QStyle, Shape interactúa con QFrame::Shadow, el lineWidth() y el midLineWidth() para crear el resultado total. Ver la imagen de los marcos en la documentación de la clase principal.

Véase también QFrame::Shadow, QFrame::style(), y QStyle::drawPrimitive().

enum QFrame::StyleMask

Este enum define dos constantes que pueden utilizarse para extraer los dos componentes de frameStyle():

ConstanteValorDescripción
QFrame::Shadow_Mask0x00f0La parte Shadow de frameStyle()
QFrame::Shape_Mask0x000fLa parte Shape de frameStyle()

Normalmente, no es necesario utilizarlas, ya que frameShadow() y frameShape() ya extraen las partes Shadow y Shape de frameStyle().

Véase también frameStyle() y setFrameStyle().

Documentación de propiedades

frameRect : QRect

Esta propiedad contiene el rectángulo del marco

El rectángulo del marco es el rectángulo en el que se dibuja el marco. Por defecto, es todo el widget. Establecer el rectángulo no causa una actualización del widget. El rectángulo del marco se ajusta automáticamente cuando el widget cambia de tamaño.

Si estableces el rectángulo a un rectángulo nulo (por ejemplo, QRect(0, 0, 0, 0)), entonces el rectángulo del marco resultante es equivalente al widget rectangle.

Funciones de acceso:

QRect frameRect() const
void setFrameRect(const QRect &)

frameShadow : Shadow

Esta propiedad contiene el valor de la sombra del estilo del marco

Funciones de acceso:

QFrame::Shadow frameShadow() const
void setFrameShadow(QFrame::Shadow)

Véase también frameStyle() y frameShape().

frameShape : Shape

Esta propiedad contiene el valor de la forma del marco del estilo del marco

Funciones de acceso:

QFrame::Shape frameShape() const
void setFrameShape(QFrame::Shape)

Véase también frameStyle() y frameShadow().

[read-only] frameWidth : int

Esta propiedad contiene el ancho del marco que se dibuja.

Tenga en cuenta que la anchura del marco depende del estilo frame style, no sólo de la anchura de la línea y de la línea media. Por ejemplo, el estilo especificado por NoFrame siempre tiene una anchura de marco de 0, mientras que el estilo Panel tiene una anchura de marco equivalente a la anchura de línea.

Funciones de acceso:

int frameWidth() const

Véase también lineWidth(), midLineWidth() y frameStyle().

lineWidth : int

Esta propiedad mantiene el ancho de línea

Tenga en cuenta que el ancho total de línea para los marcos utilizados como separadores (HLine y VLine) se especifica mediante frameWidth.

El valor por defecto es 1.

Funciones de acceso:

int lineWidth() const
void setLineWidth(int)

Véase también midLineWidth y frameWidth.

midLineWidth : int

Esta propiedad contiene el ancho de la línea media

El valor por defecto es 0.

Funciones de acceso:

int midLineWidth() const
void setMidLineWidth(int)

Véase también lineWidth y frameWidth.

Documentación de las funciones miembro

[explicit] QFrame::QFrame(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Construye un widget de marco con el estilo de marco NoFrame y un ancho de marco de 1 píxel.

Los argumentos parent y f se pasan al constructor QWidget.

[virtual noexcept] QFrame::~QFrame()

Destruye el marco.

[override virtual protected] void QFrame::changeEvent(QEvent *ev)

Reimplementa: QWidget::changeEvent(QEvent *event).

[override virtual protected] bool QFrame::event(QEvent *e)

Reimplementa: QWidget::event(QEvent *event).

int QFrame::frameStyle() const

Devuelve el estilo del marco.

El valor por defecto es QFrame::Plain.

Véase también setFrameStyle(), frameShape() y frameShadow().

[virtual protected] void QFrame::initStyleOption(QStyleOptionFrame *option) const

Inicializa option con los valores de este QFrame. Este método es útil para las subclases cuando necesitan un QStyleOptionFrame pero no quieren rellenar toda la información ellas mismas.

Véase también QStyleOption::initFrom().

[override virtual protected] void QFrame::paintEvent(QPaintEvent *)

Reimplementa: QWidget::paintEvent(QPaintEvent *event).

void QFrame::setFrameStyle(int style)

Establece el estilo de marco en style.

El style es el bitwise OR entre una forma de marco y un estilo de sombra de marco. Véase la imagen de los marcos en la documentación de la clase principal.

Las formas de marco se dan en QFrame::Shape y los estilos de sombra en QFrame::Shadow.

Si se especifica una anchura de línea media superior a 0, se dibuja una línea adicional para los marcos Raised o Sunken Box , HLine, y VLine. El color medio del grupo de colores actual se utiliza para dibujar las líneas medias.

Véase también frameStyle().

[override virtual] QSize QFrame::sizeHint() const

Reimplementa una función de acceso para la propiedad: QWidget::sizeHint.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.