En esta página

QWidget Class

La clase QWidget es la clase base de todos los objetos de interfaz de usuario. Más...

Tipos públicos

enum RenderFlag { DrawWindowBackground, DrawChildren, IgnoreMask }
flags RenderFlags

Propiedades

Funciones Públicas

QWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QWidget()
bool acceptDrops() const
QString accessibleDescription() const
QString accessibleIdentifier() const
QString accessibleName() const
QList<QAction *> actions() const
void activateWindow()
void addAction(QAction *acción)
(since 6.3) QAction *addAction(const QString &text)
(since 6.3) QAcción *addAction(const QIcon &icon, const QString &text)
(since 6.3) QAction * (const QString &text)addAction(const QString &text, const QKeySequence &shortcut)
(since 6.3) QAcción *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)
(since 6.3) QAction *addAction(const QString &text, Args &&... args)
(since 6.3) QAction * (const QIcon &iconaddAction(const QIcon &icon, const QString &text, Args &&... args)
(since 6.3) QAction * (const QString &text, Args &&... args)addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)
(since 6.3) QAction * (const QIcon &iconaddAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)
(since 6.3) QAction *addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
(since 6.3) QAction *addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)
void addActions(const QList<QAction *> &actions)
void adjustSize()
bool autoFillBackground() const
QPalette::ColorRole backgroundRole() const
QBackingStore *backingStore() const
QSize baseSize() const
QWidget *childAt(int x, int y) const
QWidget *childAt(const QPoint&p) const
(since 6.8) QWidget * (const QPointF &p) constchildAt(const QPointF&p) const
QRect childrenRect() const
QRegión childrenRegion() const
void clearFocus()
void clearMask()
QMargins contentsMargins() const
QRect contentsRect() const
Qt::ContextMenuPolicy contextMenuPolicy() const
QCursor cursor() const
WId effectiveWinId() const
void ensurePolished() const
Qt::Política de enfoque focusPolicy() const
QWidget *focusProxy() const
QWidget *focusWidget() const
const QFont &font() const
QFontInfo fontInfo() const
QFontMetrics fontMetrics() const
QPalette::ColorRole foregroundRole() const
QRect frameGeometry() const
QSize frameSize() const
const QRect &geometry() const
QPixmap grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))
void grabGesture(Qt::GestureType gesto, Qt::GestureFlags banderas = Qt::GestureFlags())
void grabKeyboard()
void grabMouse()
void grabMouse(const QCursor &cursor)
int grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)
QGraphicsEffect *graphicsEffect() const
QGraphicsProxyWidget * ()graphicsProxyWidget() const
bool hasEditFocus() const
bool hasFocus() const
bool virtual hasHeightForWidth() const
bool hasMouseTracking() const
bool hasTabletTracking() const
int height() const
int virtual heightForWidth(int w) const
Qt::InputMethodHints inputMethodHints() const
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const
void insertAction(QAction *before, QAction *action)
void insertActions(QAction *before, const QList<QAction *> &actions)
bool isActiveWindow() const
bool isAncestorOf(const QWidget *child) const
bool isEnabled() const
bool isEnabledTo(const QWidget *ancestor) const
bool isFullScreen() const
bool isHidden() const
bool isMaximized() const
bool isMinimized() const
bool isModal() const
bool isVisible() const
bool isVisibleTo(const QWidget *ancestor) const
bool isWindow() const
bool isWindowModified() const
QLayout *layout() const
Qt::DirecciónDisposición layoutDirection() const
QLocale locale() const
(since 6.0) QPointF mapFrom(const QWidget *parent, const QPointF &pos) const
QPoint mapFrom(const QWidget *parent, const QPoint &pos) const
(since 6.0) QPointF mapFromGlobal(const QPointF &pos) const
QPoint mapFromGlobal(const QPoint &pos) const
(since 6.0) QPointF mapFromParent(const QPointF &pos) const
QPoint mapFromParent(const QPoint &pos) const
(since 6.0) QPointF mapTo(const QWidget *parent, const QPointF &pos) const
QPoint mapTo(const QWidget *parent, const QPoint &pos) const
(since 6.0) QPointF mapToGlobal(const QPointF &pos) const
QPoint mapToGlobal(const QPoint &pos) const
(since 6.0) QPointF mapToParent(const QPointF &pos) const
QPoint mapToParent(const QPoint &pos) const
QRegión mask() const
int maximumHeight() const
QSize maximumSize() const
int maximumWidth() const
int minimumHeight() const
QSize minimumSize() const
virtual QSize minimumSizeHint() const
int minimumWidth() const
void move(int x, int y)
void move(const QPoint &)
QWidget *nativeParentWidget() const
QWidget *nextInFocusChain() const
QRect normalGeometry() const
void overrideWindowFlags(Qt::WindowFlags flags)
const QPalette &palette() const
QWidget *parentWidget() const
QPoint pos() const
QWidget *previousInFocusChain() const
QRect rect() const
void releaseKeyboard()
void releaseMouse()
void releaseShortcut(int id)
void removeAction(QAction *acción)
void render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))
void repaint(const QRect &rect)
void repaint(const QRegion &rgn)
void repaint(int x, int y, int w, int h)
void resize(int w, int h)
void resize(const QSize &)
bool restoreGeometry(const QByteArray &geometry)
QByteArray saveGeometry() const
QPantalla *screen() const
void scroll(int dx, int dy)
void scroll(int dx, int dy, const QRect &r)
void setAcceptDrops(bool on)
void setAccessibleDescription(const QString &description)
void setAccessibleIdentifier(const QString &identifier)
void setAccessibleName(const QString &name)
void setAttribute(Qt::WidgetAttribute atributo, bool on = true)
void setAutoFillBackground(bool enabled)
void setBackgroundRole(QPalette::ColorRole rol)
void setBaseSize(const QSize &)
void setBaseSize(int baseew, int baseh)
void setContentsMargins(int izquierda, int arriba, int derecha, int abajo)
void setContentsMargins(const QMargins &margins)
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)
void setCursor(const QCursor &)
void setEditFocus(bool enable)
void setFixedHeight(int h)
void setFixedSize(const QSize &s)
void setFixedSize(int w, int h)
void setFixedWidth(int w)
void setFocus(Qt::FocusReason razón)
void setFocusPolicy(Qt::FocusPolicy política)
void setFocusProxy(QWidget *w)
void setFont(const QFont &)
void setForegroundRole(QPalette::ColorRole role)
void setGeometry(int x, int y, int w, int h)
void setGeometry(const QRect &)
void setGraphicsEffect(QGraphicsEffect *effect)
void setInputMethodHints(Qt::InputMethodHints hints)
void setLayout(QLayout *layout)
void setLayoutDirection(Qt::LayoutDirection direction)
void setLocale(const QLocale &locale)
void setMask(const QBitmap &bitmap)
void setMask(const QRegion &region)
void setMaximumHeight(int maxh)
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)
void setMaximumWidth(int maxw)
void setMinimumHeight(int minh)
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)
void setMinimumWidth(int minw)
void setMouseTracking(bool enable)
void setPalette(const QPalette &)
void setParent(QWidget *parent)
void setParent(QWidget *parent, Qt::WindowFlags f)
void setScreen(QScreen *pantalla)
void setShortcutAutoRepeat(int id, bool enable = true)
void setShortcutEnabled(int id, bool enable = true)
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
void setStatusTip(const QString &)
void setStyle(QStyle *style)
void setTabletTracking(bool enable)
void setToolTip(const QString &)
void setToolTipDuration(int msec)
void setUpdatesEnabled(bool enable)
void setWhatsThis(const QString &)
void setWindowFilePath(const QString &filePath)
void setWindowFlag(Qt::WindowType flag, bool on = true)
void setWindowFlags(Qt::WindowFlags tipo)
void setWindowIcon(const QIcon &icon)
void setWindowModality(Qt::WindowModality windowModality)
void setWindowOpacity(qreal nivel)
void setWindowRole(const QString &role)
void setWindowState(Qt::WindowStates windowState)
void setupUi(QWidget *widget)
QSize size() const
virtual QSize sizeHint() const
QSize sizeIncrement() const
QSizePolicy sizePolicy() const
void stackUnder(QWidget *w)
QString statusTip() const
QStyle *style() const
QString styleSheet() const
bool testAttribute(Qt::WidgetAttribute atributo) const
QString toolTip() const
int toolTipDuration() const
bool underMouse() const
void ungrabGesture(Qt::GestureType gesto)
void unsetCursor()
void unsetLayoutDirection()
void unsetLocale()
void update(const QRect &rect)
void update(const QRegion &rgn)
void update(int x, int y, int w, int h)
void updateGeometry()
bool updatesEnabled() const
QRegión visibleRegion() const
QString whatsThis() const
int width() const
WId winId() const
QWidget *window() const
QString windowFilePath() const
Qt::WindowFlags windowFlags() const
QWindow *windowHandle() const
QIcon windowIcon() const
Qt::WindowModality windowModality() const
qreal windowOpacity() const
QString windowRole() const
Qt::EstadosDeLaVentana windowState() const
QString windowTitle() const
Qt::TipoDeVentana windowType() const
int x() const
int y() const

Funciones públicas reimplementadas

virtual QPaintEngine *paintEngine() const override

Ranuras públicas

bool close()
void hide()
void lower()
void raise()
void repaint()
void setDisabled(bool disable)
void setEnabled(bool)
void setFocus()
void setHidden(bool hidden)
void setStyleSheet(const QString &styleSheet)
virtual void setVisible(bool visible)
void setWindowModified(bool)
void setWindowTitle(const QString &)
void show()
void showFullScreen()
void showMaximized()
void showMinimized()
void showNormal()
void update()

Señales

void customContextMenuRequested(const QPoint &pos)
void windowIconChanged(const QIcon &icon)
void windowTitleChanged(const QString &title)

Miembros públicos estáticos

QWidget *createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
QWidget *find(WId id)
QWidget *keyboardGrabber()
QWidget *mouseGrabber()
void setTabOrder(QWidget *first, QWidget *second)
(since 6.6) void setTabOrder(std::initializer_list<QWidget *> widgets)

Funciones protegidas

virtual void actionEvent(QActionEvent *event)
virtual void changeEvent(QEvent *event)
virtual void closeEvent(QCloseEvent *event)
virtual void contextMenuEvent(QContextMenuEvent *event)
void create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
void destroy(bool destroyWindow = true, bool destroySubWindows = true)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
virtual void dropEvent(QDropEvent *event)
virtual void enterEvent(QEnterEvent *event)
virtual void focusInEvent(QFocusEvent *event)
bool focusNextChild()
virtual bool focusNextPrevChild(bool next)
virtual void focusOutEvent(QFocusEvent *event)
bool focusPreviousChild()
virtual void hideEvent(QHideEvent *event)
virtual void inputMethodEvent(QInputMethodEvent *event)
virtual void keyPressEvent(QKeyEvent *event)
virtual void keyReleaseEvent(QKeyEvent *event)
virtual void leaveEvent(QEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)
virtual void moveEvent(QMoveEvent *event)
virtual bool nativeEvent(const QByteArray &eventType, void *message, qintptr *result)
virtual void paintEvent(QPaintEvent *event)
virtual void resizeEvent(QResizeEvent *event)
virtual void showEvent(QShowEvent *event)
virtual void tabletEvent(QTabletEvent *event)
virtual void wheelEvent(QWheelEvent *event)

Funciones protegidas reimplementadas

virtual bool event(QEvent *event) override
virtual void initPainter(QPainter *painter) const override
virtual int metric(QPaintDevice::PaintDeviceMetric m) const override

Ranuras protegidas

void updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

Macros

Descripción detallada

El widget es el átomo de la interfaz de usuario: recibe eventos de ratón, teclado y otros del sistema de ventanas, y pinta una representación de sí mismo en la pantalla. Cada widget es rectangular, y están ordenados en Z. Un widget es recortado por su padre y por los widgets situados delante de él.

Un widget que no está incrustado en un widget padre se llama ventana. Normalmente, las ventanas tienen un marco y una barra de título, aunque también es posible crear ventanas sin dicha decoración utilizando la página window flags adecuada. En Qt, QMainWindow y las distintas subclases de QDialog son los tipos de ventana más comunes.

El constructor de cada widget acepta uno o dos argumentos estándar:

  1. QWidget *parent = nullptr es el padre del nuevo widget. Si es nullptr (por defecto), el nuevo widget será una ventana. Si no, será hijo del padre, y estará limitado por la geometría del padre(a menos que especifique Qt::Window como bandera de ventana).
  2. Qt::WindowFlags f = { } (donde esté disponible) establece las banderas de ventana; el valor por defecto es adecuado para la mayoría de los widgets, pero para obtener, por ejemplo, una ventana sin un marco de sistema de ventana, debes utilizar banderas especiales.

QWidget tiene muchas funciones miembro, pero algunas de ellas tienen poca funcionalidad directa; por ejemplo, QWidget tiene una propiedad font, pero nunca la usa. Hay muchas subclases que proporcionan funcionalidad real, como QLabel, QPushButton, QListWidget, y QTabWidget.

Widgets de nivel superior e hijo

Un widget sin un widget padre es siempre una ventana independiente (widget de nivel superior). Para estos widgets, setWindowTitle() y setWindowIcon() establecen la barra de título y el icono, respectivamente.

Los widgets sin ventana son widgets hijo, que se muestran dentro de sus widgets padre. La mayoría de los widgets en Qt son principalmente útiles como widgets hijos. Por ejemplo, es posible mostrar un botón como una ventana de nivel superior, pero la mayoría de la gente prefiere poner sus botones dentro de otros widgets, como QDialog.

Widget de citas con widgets hijos etiquetados

Un widget padre que contiene varios widgets hijos.

El diagrama anterior muestra un widget QGroupBox que se utiliza para alojar varios widgets hijos en un diseño proporcionado por QGridLayout. Los widgets hijos de QLabel se han delineado para indicar su tamaño completo.

Si quieres usar un QWidget para contener widgets hijo, normalmente querrás añadir un layout al QWidget padre. Ver Layout Management para más información.

Widgets compuestos

Cuando un widget se utiliza como contenedor para agrupar varios widgets hijo, se conoce como widget compuesto. Éstos pueden crearse construyendo un widget con las propiedades visuales requeridas -un QFrame, por ejemplo- y añadiéndole widgets hijo, normalmente gestionados por un diseño.

Los widgets compuestos también pueden crearse subclasificando un widget estándar, como QWidget o QFrame, y añadiendo el diseño y los widgets hijo necesarios en el constructor de la subclase. Muchos de los ejemplos proporcionados con Qt utilizan este enfoque, y también se cubre en el Tutorial de Qt Widgets.

Widgets personalizados y pintura

Dado que QWidget es una subclase de QPaintDevice, las subclases pueden utilizarse para mostrar contenido personalizado que se compone utilizando una serie de operaciones de pintado con una instancia de la clase QPainter. Este enfoque contrasta con el enfoque de estilo lienzo utilizado por Graphics View Framework, en el que los elementos son añadidos a una escena por la aplicación y son renderizados por el propio framework.

Cada widget realiza todas las operaciones de pintado desde su función paintEvent(). Esta función es llamada cada vez que el widget necesita ser redibujado, ya sea debido a algún cambio externo o cuando la aplicación lo solicita.

El ejemplo del Reloj analógico muestra cómo un widget simple puede manejar eventos de pintado.

Sugerencias y políticas de tamaño

Cuando se implementa un nuevo widget, casi siempre es útil reimplementar sizeHint() para proporcionar un tamaño por defecto razonable para el widget y establecer la política de tamaño correcta con setSizePolicy().

Por defecto, los widgets compuestos que no proporcionan una sugerencia de tamaño serán dimensionados de acuerdo a los requerimientos de espacio de sus widgets hijos.

La política de tamaño te permite proporcionar un buen comportamiento por defecto para el sistema de gestión de diseño, de forma que otros widgets puedan contener y gestionar el tuyo fácilmente. La política de tamaño por defecto indica que la sugerencia de tamaño representa el tamaño preferido del widget, y esto suele ser suficiente para muchos widgets.

Nota: El tamaño de los widgets de nivel superior está limitado a 2/3 de la altura y anchura del escritorio. Puedes resize() el widget manualmente si estos límites son inadecuados.

Eventos

Los widgets responden a eventos que son típicamente causados por acciones del usuario. Qt envía eventos a los widgets llamando a funciones específicas de control de eventos con instancias de subclases de QEvent que contienen información sobre cada evento.

Si tu widget sólo contiene widgets hijo, probablemente no necesites implementar ningún manejador de eventos. Si quieres detectar un clic de ratón en un widget hijo, llama a la función underMouse() del hijo dentro de la función mousePressEvent() del widget.

El ejemplo de Scribble implementa un conjunto más amplio de eventos para manejar el movimiento del ratón, la pulsación de botones y el cambio de tamaño de la ventana.

Tendrás que proporcionar el comportamiento y el contenido para tus propios widgets, pero aquí tienes un breve resumen de los eventos que son relevantes para QWidget, empezando por los más comunes:

  • paintEvent() es llamado cada vez que el widget necesita ser repintado. Todo widget que muestre contenido personalizado debe implementarlo. Pintar usando un QPainter sólo puede tener lugar en un paintEvent() o en una función llamada por un paintEvent().
  • resizeEvent() se ejecuta cuando se cambia el tamaño del widget.
  • mousePressEvent() se llama cuando se pulsa un botón del ratón mientras el cursor del ratón está dentro del widget, o cuando el widget ha agarrado el ratón usando grabMouse(). Pulsar el ratón sin soltarlo es lo mismo que llamar a grabMouse().
  • mouseReleaseEvent() se llama cuando se suelta un botón del ratón. Un widget recibe eventos de liberación del ratón cuando ha recibido el correspondiente evento de pulsación del ratón. Esto significa que si el usuario pulsa el ratón dentro de tu widget, luego arrastra el ratón a otro lugar antes de soltar el botón del ratón, tu widget recibe el evento de liberación. Hay una excepción: si aparece un menú emergente mientras se mantiene pulsado el botón del ratón, este menú emergente roba inmediatamente los eventos de ratón.
  • mouseDoubleClickEvent() se ejecuta cuando el usuario hace doble clic en el widget. Si el usuario hace doble clic, el widget recibe un evento de pulsación del ratón, un evento de liberación del ratón, (un evento de pulsación del ratón,) una segunda pulsación del ratón, este evento y finalmente un segundo evento de liberación del ratón. (También pueden recibirse algunos eventos de movimiento del ratón si éste no se mantiene fijo durante esta operación). No es posible distinguir un clic de un doble clic hasta que llega el segundo clic. (Esta es una de las razones por las que la mayoría de los libros de GUI recomiendan que los dobles clics sean una extensión de los clics simples, en lugar de desencadenar una acción diferente).

Los widgets que aceptan entradas de teclado necesitan reimplementar algunos manejadores de eventos más:

  • keyPressEvent() se llama cada vez que se pulsa una tecla, y de nuevo cuando una tecla se ha mantenido pulsada el tiempo suficiente para que se repita automáticamente. Las teclas Tab y Shift+Tab sólo se pasan al widget si no son utilizadas por los mecanismos de cambio de foco. Para forzar que esas teclas sean procesadas por tu widget, debes reimplementar QWidget::event().
  • focusInEvent() es llamado cuando el widget obtiene el foco del teclado (asumiendo que has llamado a setFocusPolicy()). Los widgets que se comportan bien indican que poseen el foco del teclado de una forma clara pero discreta.
  • focusOutEvent() se ejecuta cuando el widget pierde el foco del teclado.

Puede que tengas que reimplementar algunos de los manejadores de eventos menos comunes:

  • mouseMoveEvent() se ejecuta cuando el ratón se mueve mientras se mantiene pulsado un botón. Esto puede ser útil durante las operaciones de arrastrar y soltar. Si llama a setMouseTracking(true), obtendrá eventos de movimiento del ratón incluso cuando no haya ningún botón pulsado. (Véase también la guía Arrastrar y soltar ).
  • keyReleaseEvent() se llama cada vez que se suelta una tecla y mientras se mantiene pulsada (si la tecla se repite automáticamente). En ese caso, el widget recibirá un par de eventos de tecla soltada y tecla pulsada por cada repetición. Las teclas Tab y Shift+Tab sólo se pasan al widget si no son utilizadas por los mecanismos de cambio de foco. Para forzar que esas teclas sean procesadas por tu widget, debes reimplementar QWidget::event().
  • wheelEvent() es llamada cada vez que el usuario gira la rueda del ratón mientras el widget tiene el foco.
  • enterEvent() se ejecuta cuando el ratón entra en el espacio de pantalla del widget. (Esto excluye el espacio de pantalla perteneciente a cualquiera de los hijos del widget).
  • leaveEvent() se ejecuta cuando el ratón abandona el espacio de pantalla del widget. Si el ratón entra en un widget hijo, no provocará una llamada a leaveEvent().
  • moveEvent() se activa cuando el widget se ha movido respecto a su padre.
  • closeEvent() se ejecuta cuando el usuario cierra el widget (o cuando se ejecuta close()).

También hay algunos eventos bastante oscuros descritos en la documentación de QEvent::Type. Para manejar estos eventos, necesitas reimplementar event() directamente.

La implementación por defecto de event() maneja Tab y Shift+Tab (para mover el foco del teclado), y pasa la mayoría de los otros eventos a uno de los manejadores más especializados de arriba.

Los eventos y el mecanismo utilizado para transmitirlos se tratan en El sistema de eventos.

Grupos de funciones y propiedades

ContextoFunciones y Propiedades
Funciones de ventanashow(), hide(), raise(), lower(), close().
Ventanas de nivel superiorwindowModified, windowTitle, windowIcon, isActiveWindow, activateWindow(), minimized, showMinimized(), maximized, showMaximized(), fullScreen, showFullScreen(), showNormal().
Contenido de las ventanasupdate(), repaint(), scroll().
Geometríapos, x(), y(), rect, size, width(), height(), move(), resize(), sizePolicy, sizeHint(), minimumSizeHint(), updateGeometry(), layout(), frameGeometry, geometry, childrenRect, childrenRegion, adjustSize(), mapFromGlobal(), mapToGlobal(), mapFromParent(), mapToParent(), maximumSize, minimumSize, sizeIncrement, baseSize, setFixedSize()
Modovisible, isVisibleTo(), enabled, isEnabledTo(), modal, isWindow(), mouseTracking, updatesEnabled, visibleRegion().
Aspectostyle(), setStyle(), styleSheet, cursor, font, palette, backgroundRole(), setBackgroundRole(), fontInfo(), fontMetrics().
Funciones de enfoque del tecladofocus, focusPolicy, setFocus(), clearFocus(), setTabOrder(), setFocusProxy(), focusNextChild(), focusPreviousChild().
Agarre del ratón y del tecladograbMouse(), releaseMouse(), grabKeyboard(), releaseKeyboard(), mouseGrabber(), keyboardGrabber().
Controladores de eventosevent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), keyPressEvent(), keyReleaseEvent(), focusInEvent(), focusOutEvent(), wheelEvent(), enterEvent(), leaveEvent(), paintEvent(), moveEvent(), resizeEvent(), closeEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), childEvent(), showEvent(), hideEvent(), customEvent(). changeEvent(),
Funciones del sistemaparentWidget(), window(), setParent(), winId(), find(), metric().
Menú contextualcontextMenuPolicy, contextMenuEvent(), customContextMenuRequested(), actions()
Ayuda interactivasetToolTip(), setWhatsThis()

Hojas de estilo de widgets

Además de los estilos de widget estándar para cada plataforma, los widgets también pueden tener un estilo acorde con las reglas especificadas en style sheet. Esta función permite personalizar el aspecto de widgets específicos para proporcionar pistas visuales a los usuarios sobre su finalidad. Por ejemplo, un botón puede tener un estilo determinado para indicar que realiza una acción destructiva.

El uso de hojas de estilo para widgets se describe con más detalle en el documento Hojas de estilo Qt.

Transparencia y doble buffer

QWidget automáticamente hace doble buffer de su pintura, por lo que no hay necesidad de escribir código de doble buffer en paintEvent() para evitar el parpadeo.

Los contenidos de los widgets padres se propagan por defecto a cada uno de sus hijos siempre que Qt::WA_PaintOnScreen no esté configurado. Se pueden escribir widgets personalizados para aprovechar esta característica actualizando regiones irregulares (para crear widgets hijos no rectangulares), o pintando con colores que tengan menos que el componente alfa completo. El siguiente diagrama muestra cómo pueden ajustarse los atributos y propiedades de un widget personalizado para conseguir diferentes efectos.

Tres pixmaps de una casa con diferentes propiedades de fondo: transparente, relleno de blanco y sin inicializar

En el diagrama anterior, se construye un widget hijo rectangular semitransparente con un área eliminada y se añade a un widget padre (un QLabel que muestra un mapa de píxeles). A continuación, se establecen diferentes propiedades y atributos del widget para conseguir distintos efectos:

  • El widget izquierdo no tiene propiedades adicionales ni atributos de widget establecidos. Este estado por defecto se adapta a la mayoría de los widgets personalizados que tienen transparencia, son de forma irregular o no pintan sobre toda su área con un pincel opaco.
  • El widget central tiene establecida la propiedad autoFillBackground. Esta propiedad se utiliza con widgets personalizados que dependen del widget para proporcionar un fondo predeterminado, y no pintan sobre toda su área con un pincel opaco.
  • El widget de la derecha tiene establecido el atributo widget Qt::WA_OpaquePaintEvent. Esto indica que el widget pintará sobre toda su área con colores opacos. El área del widget estará inicialmente sin inicializar, representada en el diagrama con un patrón de cuadrícula diagonal roja que brilla a través del área sobrepintada.

Para actualizar rápidamente widgets personalizados con colores de fondo simples, como widgets de trazado o gráficos en tiempo real, es mejor definir un color de fondo adecuado (usando setBackgroundRole() con el rol QPalette::Window ), establecer la propiedad autoFillBackground, e implementar sólo la funcionalidad de dibujo necesaria en el widget paintEvent().

Para actualizar rápidamente widgets personalizados que pintan constantemente sobre toda su área con contenido opaco, por ejemplo, widgets de transmisión de vídeo, es mejor establecer la propiedad Qt::WA_OpaquePaintEvent del widget, evitando cualquier sobrecarga innecesaria asociada con el repintado del fondo del widget.

Si un widget tiene tanto el atributo Qt::WA_OpaquePaintEvent como la propiedad autoFillBackground, el atributo Qt::WA_OpaquePaintEvent tiene preferencia. Dependiendo de sus necesidades, deberá elegir uno u otro.

El contenido de los widgets padre también se propaga a los widgets Qt estándar. Esto puede conducir a algunos resultados inesperados si el widget padre está decorado de una manera no estándar, como se muestra en el diagrama siguiente.

Un widget tiene un fondo transparente y el otro un fondo relleno

El margen para personalizar el comportamiento de pintado de los widgets Qt estándar, sin recurrir a la subclase, es ligeramente menor que el posible para los widgets personalizados. Normalmente, la apariencia deseada de un widget estándar puede conseguirse configurando su propiedad autoFillBackground.

Creación de ventanas translúcidas

Puede crear ventanas con regiones translúcidas en sistemas de ventanas que soporten composición.

Para activar esta característica en un widget de nivel superior, establezca su atributo Qt::WA_TranslucentBackground con setAttribute() y asegúrese de que su fondo está pintado con colores no opacos en las regiones que desea que sean parcialmente transparentes.

Notas sobre la plataforma:

  • X11: Esta función depende del uso de un servidor X que admita visuales ARGB y un gestor de ventanas de composición.
  • Windows: El widget debe tener activada la opción Qt::FramelessWindowHint para que funcione la translucidez.
  • macOS: El widget debe tener activada la opción Qt::FramelessWindowHint para que funcione la translucidez.

Widgets nativos frente a widgets alienígenas

Los widgets alienígenas son widgets desconocidos para el sistema de ventanas. No tienen un manejador de ventana nativo asociado. Esta característica acelera significativamente el pintado y redimensionado de los widgets y elimina el parpadeo.

Si necesita el comportamiento anterior con ventanas nativas, elija una de las siguientes opciones:

  1. Utilice QT_USE_NATIVE_WINDOWS=1 en su entorno.
  2. Establezca el atributo Qt::AA_NativeWindows en su aplicación. Todos los widgets serán widgets nativos.
  3. Establezca el atributo Qt::WA_NativeWindow en los widgets: El propio widget y todos sus ancestros se convertirán en nativos (a menos que se establezca Qt::WA_DontCreateNativeAncestors ).
  4. Llame a QWidget::winId para imponer una ventana nativa (esto implica 3).
  5. Establezca el atributo Qt::WA_PaintOnScreen para imponer una ventana nativa (esto implica 3).

Véase también QEvent, QPainter, QGridLayout, y QBoxLayout.

Documentación de tipos de miembros

enum QWidget::RenderFlag
flags QWidget::RenderFlags

Este enum describe cómo renderizar el widget cuando se llama a QWidget::render().

ConstanteValorDescripción
QWidget::DrawWindowBackground0x1Si habilita esta opción, el fondo del widget se renderiza en el destino incluso si autoFillBackground no está configurado. Por defecto, esta opción está activada.
QWidget::DrawChildren0x2Si activas esta opción, los hijos del widget se renderizan recursivamente en el destino. Por defecto, esta opción está activada.
QWidget::IgnoreMask0x4Si activas esta opción, la dirección QWidget::mask() del widget se ignora cuando se renderiza en el destino. Por defecto, esta opción está desactivada.

El tipo RenderFlags es un typedef para QFlags<RenderFlag>. Almacena una combinación OR de valores RenderFlag.

Documentación de Propiedades

acceptDrops : bool

Esta propiedad indica si los eventos de caída están habilitados para este widget.

Establecer esta propiedad a true anuncia al sistema que este widget puede aceptar eventos drop.

Advertencia: No modifiques esta propiedad en un manejador de eventos de arrastrar y soltar.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool acceptDrops() const
void setAcceptDrops(bool on)

Ver también Arrastrar y Soltar.

accessibleDescription : QString

Esta propiedad contiene la descripción del widget vista por las tecnologías de asistencia.

La descripción accesible de un widget debe transmitir lo que hace. Mientras que accessibleName debe ser una cadena corta y concisa (por ejemplo, Guardar), la descripción debe dar más contexto, como Guardar el documento actual.

Esta propiedad debe localizarse.

Por defecto, esta propiedad contiene una cadena vacía y Qt vuelve a utilizar el tool tip para proporcionar esta información.

Funciones de acceso:

QString accessibleDescription() const
void setAccessibleDescription(const QString &description)

Véase también QWidget::accessibleName y QAccessibleInterface::text().

[since 6.9] accessibleIdentifier : QString

Esta propiedad contiene el identificador del widget visto por las tecnologías de asistencia.

Si se establece, el identificador accesible de un widget puede ser utilizado por las tecnologías de asistencia para identificar un widget específico, por ejemplo, en pruebas automatizadas.

Esta propiedad se introdujo en Qt 6.9.

Funciones de acceso:

QString accessibleIdentifier() const
void setAccessibleIdentifier(const QString &identifier)

accessibleName : QString

Esta propiedad contiene el nombre del widget tal y como lo ven las tecnologías de asistencia

Este es el nombre principal con el que las tecnologías de asistencia, como los lectores de pantalla, anuncian este widget. Para la mayoría de los widgets no es necesario establecer esta propiedad. Por ejemplo, en QPushButton se utilizará el texto del botón.

Es importante establecer esta propiedad cuando el widget no proporciona ningún texto. Por ejemplo, un botón que sólo contiene un icono necesita establecer esta propiedad para funcionar con lectores de pantalla. El nombre debe ser corto y equivalente a la información visual que transmite el widget.

Esta propiedad debe estar localizada.

Por defecto, esta propiedad contiene una cadena vacía.

Funciones de acceso:

QString accessibleName() const
void setAccessibleName(const QString &name)

Véase también QWidget::accessibleDescription y QAccessibleInterface::text().

autoFillBackground : bool

Esta propiedad mantiene si el fondo del widget se rellena automáticamente

Si está activada, esta propiedad hará que Qt rellene el fondo del widget antes de invocar el evento paint. El color utilizado está definido por el rol de color QPalette::Window del widget palette.

Además, las ventanas siempre se rellenan con QPalette::Window, a menos que se establezcan los atributos WA_OpaquePaintEvent o WA_NoSystemBackground.

Esta propiedad no puede desactivarse (es decir, ponerse a false) si el padre de un widget tiene un gradiente estático para su fondo.

Advertencia: Utilice esta propiedad con precaución junto con las hojas de estilo de Qt. Cuando un widget tiene una hoja de estilo con un fondo válido o un borde-imagen, esta propiedad se desactiva automáticamente.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool autoFillBackground() const
void setAutoFillBackground(bool enabled)

Ver también Qt::WA_OpaquePaintEvent, Qt::WA_NoSystemBackground, y Transparency and Double Buffering.

baseSize : QSize

Esta propiedad contiene el tamaño base del widget

El tamaño base se utiliza para calcular el tamaño adecuado del widget si éste define sizeIncrement().

Por defecto, para un widget recién creado, esta propiedad contiene un tamaño con anchura y altura cero.

Funciones de acceso:

QSize baseSize() const
void setBaseSize(const QSize &)
void setBaseSize(int basew, int baseh)

Véase también setSizeIncrement().

[read-only] childrenRect : QRect

Esta propiedad contiene el rectángulo delimitador de los hijos del widget.

Se excluyen los hijos ocultos.

Por defecto, para un widget sin hijos, esta propiedad contiene un rectángulo con anchura y altura cero situado en el origen.

Funciones de acceso:

QRect childrenRect() const

Véase también childrenRegion() y geometry().

[read-only] childrenRegion : QRegion

Esta propiedad contiene la región combinada ocupada por los hijos del widget

Se excluyen los hijos ocultos.

Por defecto, para un widget sin hijos, esta propiedad contiene una región vacía.

Funciones de acceso:

QRegion childrenRegion() const

Véase también childrenRect(), geometry() y mask().

contextMenuPolicy : Qt::ContextMenuPolicy

cómo muestra el widget un menú contextual

El valor por defecto de esta propiedad es Qt::DefaultContextMenu, lo que significa que se llama al manejador contextMenuEvent() . Otros valores son Qt::NoContextMenu, Qt::PreventContextMenu, Qt::ActionsContextMenu, y Qt::CustomContextMenu. Con Qt::CustomContextMenu, se emite la señal customContextMenuRequested().

Funciones de acceso:

Qt::ContextMenuPolicy contextMenuPolicy() const
void setContextMenuPolicy(Qt::ContextMenuPolicy policy)

Véase también contextMenuEvent(), customContextMenuRequested() y actions().

cursor : QCursor

Esta propiedad contiene la forma del cursor para este widget

El cursor del ratón asumirá esta forma cuando esté sobre este widget. Ver list of predefined cursor objects para una gama de formas útiles.

Un widget editor puede usar un cursor en forma de I:

setCursor(Qt::IBeamCursor);

Si no se ha establecido ningún cursor, o después de una llamada a unsetCursor(), se utiliza el cursor del padre.

Por defecto, esta propiedad contiene un cursor con la forma Qt::ArrowCursor.

Algunas implementaciones de ventanas subyacentes restablecerán el cursor si abandona un widget incluso si se agarra el ratón. Si quieres tener un cursor establecido para todos los widgets, incluso cuando están fuera de la ventana, considera QGuiApplication::setOverrideCursor().

Funciones de acceso:

QCursor cursor() const
void setCursor(const QCursor &)
void unsetCursor()

Véase también QGuiApplication::setOverrideCursor().

enabled : bool

Esta propiedad indica si el widget está habilitado

En general, un widget habilitado maneja eventos de teclado y ratón; un widget deshabilitado no. Se hace una excepción con QAbstractButton.

Algunos widgets se muestran de forma diferente cuando están deshabilitados. Por ejemplo, un botón puede mostrar su etiqueta en gris. Si tu widget necesita saber cuándo se activa o desactiva, puedes utilizar la función changeEvent() con el tipo QEvent::EnabledChange.

Deshabilitar un widget implícitamente deshabilita todos sus hijos. Habilitarlos, respectivamente, habilita todos los widgets hijos a menos que hayan sido deshabilitados explícitamente. No es posible habilitar explícitamente un widget hijo que no sea una ventana mientras su widget padre permanece deshabilitado.

Por defecto, esta propiedad es true.

Funciones de acceso:

bool isEnabled() const
void setEnabled(bool)

Véase también isEnabledTo(), QKeyEvent, QMouseEvent, y changeEvent().

[read-only] focus : bool

Esta propiedad indica si este widget (o su proxy de foco) tiene el foco de entrada del teclado.

Por defecto, esta propiedad es false.

Nota: Obtener el valor de esta propiedad para un widget es equivalente a comprobar si QApplication::focusWidget() hace referencia al widget.

Funciones de acceso:

bool hasFocus() const

Véase también setFocus(), clearFocus(), setFocusPolicy() y QApplication::focusWidget().

focusPolicy : Qt::FocusPolicy

Esta propiedad contiene la forma en que el widget acepta el foco del teclado

La política es Qt::TabFocus si el widget acepta el foco del teclado por tabulación, Qt::ClickFocus si el widget acepta el foco por clic, Qt::StrongFocus si acepta ambos, y Qt::NoFocus (por defecto) si no acepta el foco en absoluto.

Debes activar el foco de teclado para un widget si procesa eventos de teclado. Esto se hace normalmente desde el constructor del widget. Por ejemplo, el constructor QLineEdit llama a setFocusPolicy(Qt::StrongFocus).

Si el widget tiene un proxy de foco, entonces la política de foco se propagará a él.

Funciones de acceso:

Qt::FocusPolicy focusPolicy() const
void setFocusPolicy(Qt::FocusPolicy policy)

Ver también focusInEvent(), focusOutEvent(), keyPressEvent(), keyReleaseEvent(), y enabled.

font : QFont

Esta propiedad contiene la fuente actualmente establecida para el widget

Esta propiedad describe la fuente solicitada por el widget. La fuente es utilizada por el estilo del widget cuando renderiza componentes estándar, y está disponible como un medio para asegurar que los widgets personalizados puedan mantener la consistencia con la apariencia de la plataforma nativa. Es común que diferentes plataformas, o diferentes estilos, definan diferentes fuentes para una aplicación.

Cuando asignas una nueva fuente a un widget, las propiedades de esta fuente se combinan con la fuente por defecto del widget para formar la fuente final del widget. Puedes llamar a fontInfo() para obtener una copia de la fuente final del widget. La fuente final también se utiliza para inicializar la fuente de QPainter.

El valor por defecto depende del entorno del sistema. QApplication mantiene una fuente de sistema/tema que sirve como valor por defecto para todos los widgets. También puede haber fuentes especiales por defecto para ciertos tipos de widgets. También puede definir usted mismo los tipos de letra predeterminados para los widgets pasando un tipo de letra personalizado y el nombre de un widget a QApplication::setFont(). Finalmente, la fuente se compara con la base de datos de fuentes de Qt para encontrar la más adecuada.

QWidget propaga las propiedades explícitas de las fuentes de padres a hijos. Si cambias una propiedad específica en una fuente y asignas esa fuente a un widget, esa propiedad se propagará a todos los hijos del widget, anulando cualquier valor predeterminado del sistema para esa propiedad. Tenga en cuenta que, por defecto, las fuentes no se propagan a las ventanas (consulte isWindow()) a menos que el atributo Qt::WA_WindowPropagation esté activado.

QWidgetes similar a la propagación de la paleta.

El estilo actual, que se utiliza para representar el contenido de todos los widgets estándar de Qt, es libre de elegir utilizar la fuente del widget o, en algunos casos, ignorarla (parcial o completamente). En particular, ciertos estilos como GTK style, Mac style, y Windows Vista style, aplican modificaciones especiales a la fuente del widget para que coincida con el aspecto nativo de la plataforma. Debido a esto, asignar propiedades a la fuente de un widget no garantiza que cambie la apariencia del widget. En su lugar, puede optar por aplicar una hoja de estilo.

Nota: Si se usan Hojas de Estilo Qt en el mismo widget que setFont(), las hojas de estilo tendrán preferencia si los ajustes entran en conflicto.

Funciones de acceso:

const QFont &font() const
void setFont(const QFont &)

Véase también fontInfo() y fontMetrics().

[read-only] frameGeometry : QRect

Geometría del widget relativa a su padre, incluyendo cualquier marco de ventana.

Consulte la documentación Geometría de las ventanas para obtener una visión general de los problemas de geometría de las ventanas.

Por defecto, esta propiedad contiene un valor que depende de la plataforma del usuario y de la geometría de la pantalla.

Funciones de acceso:

QRect frameGeometry() const

Véase también geometry(), x(), y(), y pos().

[read-only] frameSize : QSize

Esta propiedad contiene el tamaño del widget incluyendo cualquier marco de ventana

Por defecto, esta propiedad contiene un valor que depende de la plataforma del usuario y de la geometría de la pantalla.

Funciones de acceso:

QSize frameSize() const

[read-only] fullScreen : bool

Esta propiedad indica si el widget se muestra en modo de pantalla completa.

Un widget en modo pantalla completa ocupa toda el área de la pantalla y no muestra decoraciones de la ventana, como la barra de título.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool isFullScreen() const

Véase también windowState(), minimized, y maximized.

geometry : QRect

Esta propiedad contiene la geometría del widget relativa a su padre y excluyendo el marco de la ventana

Al cambiar la geometría, el widget, si es visible, recibe un evento de movimiento (moveEvent()) y/o un evento de redimensionamiento (resizeEvent()) inmediatamente. Si el widget no está visible en ese momento, se garantiza que reciba los eventos apropiados antes de mostrarse.

El componente de tamaño se ajusta si se encuentra fuera del rango definido por minimumSize() y maximumSize().

Advertencia: Llamar a setGeometry() dentro de resizeEvent() o moveEvent() puede llevar a una recursión infinita.

Consulte la documentación Geometría de las ventanas para una visión general de los problemas de geometría con las ventanas.

Por defecto, esta propiedad contiene un valor que depende de la plataforma del usuario y de la geometría de la pantalla.

Funciones de acceso:

const QRect &geometry() const
void setGeometry(int x, int y, int w, int h)
void setGeometry(const QRect &)

Véase también frameGeometry(), rect(), move(), resize(), moveEvent(), resizeEvent(), minimumSize() y maximumSize().

[read-only] height : int

Esta propiedad contiene la altura del widget excluyendo cualquier marco de ventana

Consulte la documentación Geometría de las ventanas para obtener una visión general de los problemas de geometría de las ventanas.

Por defecto, esta propiedad contiene un valor que depende de la plataforma del usuario y de screen geometry.

Funciones de acceso:

int height() const

Véase también geometry, width, y size.

inputMethodHints : Qt::InputMethodHints

Qué sugerencias específicas del método de entrada tiene el widget.

Esto sólo es relevante para los widgets de entrada. Es utilizado por el método de entrada para recuperar pistas sobre cómo debería funcionar el método de entrada. Por ejemplo, si el indicador Qt::ImhFormattedNumbersOnly está activado, el método de entrada puede cambiar sus componentes visuales para reflejar que sólo se pueden introducir números.

Atención: Algunos widgets necesitan ciertos indicadores para funcionar correctamente. Para activar un indicador, haga w->setInputMethodHints(w->inputMethodHints()|f) en lugar de w->setInputMethodHints(f).

Nota: Las banderas son sólo sugerencias, por lo que la implementación del método de entrada en particular es libre de ignorarlas. Si quieres estar seguro de que se introduce un determinado tipo de caracteres, también debes establecer un QValidator en el widget.

El valor por defecto es Qt::ImhNone.

Funciones de acceso:

Qt::InputMethodHints inputMethodHints() const
void setInputMethodHints(Qt::InputMethodHints hints)

Véase también inputMethodQuery().

[read-only] isActiveWindow : bool

Esta propiedad indica si la ventana de este widget es la ventana activa.

La ventana activa es la ventana que contiene el widget que tiene foco de teclado (La ventana puede seguir teniendo foco si no tiene widgets o ninguno de sus widgets acepta foco de teclado).

Cuando las ventanas emergentes son visibles, esta propiedad es true tanto para la ventana activa como para la ventana emergente.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool isActiveWindow() const

Véase también activateWindow() y QApplication::activeWindow().

layoutDirection : Qt::LayoutDirection

Esta propiedad contiene la dirección del diseño de este widget.

Nota: Este método ya no afecta a la dirección del diseño del texto desde Qt 4.7.

Por defecto, esta propiedad se establece en Qt::LeftToRight.

Cuando se establece la dirección del diseño en un widget, se propagará a los hijos del widget, pero no a un hijo que sea una ventana ni a un hijo para el que se haya llamado explícitamente a setLayoutDirection(). Además, los widgets hijos añadidos después de haber llamado a setLayoutDirection() para el padre no heredan la dirección de diseño del padre.

Funciones de acceso:

Qt::LayoutDirection layoutDirection() const
void setLayoutDirection(Qt::LayoutDirection direction)
void unsetLayoutDirection()

Véase también QApplication::layoutDirection.

locale : QLocale

Esta propiedad contiene la configuración regional del widget

Mientras no se haya establecido una configuración regional especial, ésta será la configuración regional del padre o (si este widget es un widget de nivel superior), la configuración regional por defecto.

Si el widget muestra fechas o números, éstos deberían formatearse usando la configuración regional del widget.

Funciones de acceso:

QLocale locale() const
void setLocale(const QLocale &locale)
void unsetLocale()

Véase también QLocale y QLocale::setDefault().

[read-only] maximized : bool

Esta propiedad indica si el widget está maximizado

Esta propiedad sólo es relevante para ventanas.

Nota: Debido a limitaciones en algunos sistemas de ventanas, esto no siempre informa de los resultados esperados (por ejemplo, si el usuario en X11 maximiza la ventana a través del gestor de ventanas, Qt no tiene forma de distinguir esto de cualquier otro cambio de tamaño). Se espera que esto mejore a medida que evolucionen los protocolos de los gestores de ventanas.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool isMaximized() const

Ver también windowState(), showMaximized(), visible, show(), hide(), showNormal(), y minimized.

maximumHeight : int

Esta propiedad contiene la altura máxima del widget en píxeles.

Esta propiedad corresponde a la altura contenida por la propiedad maximumSize.

Por defecto, esta propiedad contiene un valor de 16777215.

Nota: La definición de la macro QWIDGETSIZE_MAX limita el tamaño máximo de los widgets.

Funciones de acceso:

int maximumHeight() const
void setMaximumHeight(int maxh)

Véase también maximumSize y maximumWidth.

maximumSize : QSize

Esta propiedad contiene el tamaño máximo del widget en píxeles.

El widget no puede ser redimensionado a un tamaño mayor que el tamaño máximo del widget.

Por defecto, esta propiedad contiene un tamaño en el que tanto la anchura como la altura tienen valores de 16777215.

Nota: La definición de la macro QWIDGETSIZE_MAX limita el tamaño máximo de los widgets.

Funciones de acceso:

QSize maximumSize() const
void setMaximumSize(const QSize &)
void setMaximumSize(int maxw, int maxh)

Véase también maximumWidth, maximumHeight, minimumSize, y sizeIncrement.

maximumWidth : int

Esta propiedad contiene la anchura máxima del widget en píxeles.

Esta propiedad corresponde a la anchura contenida por la propiedad maximumSize.

Por defecto, esta propiedad contiene un valor de 16777215.

Nota: La definición de la macro QWIDGETSIZE_MAX limita el tamaño máximo de los widgets.

Funciones de acceso:

int maximumWidth() const
void setMaximumWidth(int maxw)

Véase también maximumSize y maximumHeight.

[read-only] minimized : bool

Esta propiedad indica si este widget está minimizado (iconificado)

Esta propiedad sólo es relevante para las ventanas.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool isMinimized() const

Véase también showMinimized(), visible, show(), hide(), showNormal(), y maximized.

minimumHeight : int

Esta propiedad contiene la altura mínima del widget en píxeles.

Esta propiedad corresponde a la altura mantenida por la propiedad minimumSize.

Por defecto, esta propiedad tiene un valor de 0.

Funciones de acceso:

int minimumHeight() const
void setMinimumHeight(int minh)

Véase también minimumSize y minimumWidth.

minimumSize : QSize

Esta propiedad contiene el tamaño mínimo del widget.

El widget no puede ser redimensionado a un tamaño menor que el tamaño mínimo del widget. El tamaño del widget se fuerza al tamaño mínimo si el tamaño actual es menor.

El tamaño mínimo establecido por esta función anulará el tamaño mínimo definido por QLayout. Para desactivar el tamaño mínimo, utilice un valor de QSize(0, 0).

Por defecto, esta propiedad contiene un tamaño con anchura y altura cero.

Funciones de acceso:

QSize minimumSize() const
void setMinimumSize(const QSize &)
void setMinimumSize(int minw, int minh)

Véase también minimumWidth, minimumHeight, maximumSize, y sizeIncrement.

[read-only] minimumSizeHint : QSize

Esta propiedad contiene el tamaño mínimo recomendado para el widget

Si el valor de esta propiedad es un tamaño inválido, no se recomienda ningún tamaño mínimo.

La implementación por defecto de minimumSizeHint() devuelve un tamaño inválido si no hay diseño para este widget, y devuelve el tamaño mínimo del diseño en caso contrario. La mayoría de los widgets integrados reimplementan minimumSizeHint().

QLayout nunca redimensionará un widget a un tamaño menor que la sugerencia de tamaño mínimo a menos que minimumSize() esté establecido o la política de tamaño esté establecida a QSizePolicy::Ignore. Si se define minimumSize(), la sugerencia de tamaño mínimo será ignorada.

Funciones de acceso:

virtual QSize minimumSizeHint() const

Véase también QSize::isValid(), resize(), setMinimumSize() y sizePolicy().

minimumWidth : int

Esta propiedad contiene la anchura mínima del widget en píxeles.

Esta propiedad corresponde a la anchura mantenida por la propiedad minimumSize.

Por defecto, esta propiedad tiene un valor de 0.

Funciones de acceso:

int minimumWidth() const
void setMinimumWidth(int minw)

Véase también minimumSize y minimumHeight.

Esta propiedad mantiene si el widget es un widget modal

Esta propiedad sólo tiene sentido para las ventanas. Un widget modal impide que los widgets de las demás ventanas reciban información.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool isModal() const

Véase también isWindow(), windowModality, y QDialog.

mouseTracking : bool

Esta propiedad contiene si el seguimiento del ratón está habilitado para el widget

Si el seguimiento del ratón está deshabilitado (por defecto), el widget sólo recibe eventos de movimiento del ratón cuando al menos un botón del ratón está pulsado mientras se mueve el ratón.

Si el seguimiento del ratón está habilitado, el widget recibe eventos de movimiento del ratón incluso si no se pulsa ningún botón.

Funciones de acceso:

bool hasMouseTracking() const
void setMouseTracking(bool enable)

Véase también mouseMoveEvent().

[read-only] normalGeometry : QRect

Esta propiedad contiene la geometría del widget tal y como aparecerá cuando se muestre como un widget de nivel superior normal (no maximizado o a pantalla completa).

Si el widget ya está en este estado, la geometría normal reflejará el widget actual geometry().

Para los widgets hijo esta propiedad siempre contiene un rectángulo vacío.

Por defecto, esta propiedad contiene un rectángulo vacío.

Funciones de acceso:

QRect normalGeometry() const

Véase también QWidget::windowState() y QWidget::geometry.

palette : QPalette

Esta propiedad describe la paleta del widget

Esta propiedad describe la paleta del widget. La paleta es utilizada por el estilo del widget cuando renderiza componentes estándar, y está disponible como medio para asegurar que los widgets personalizados puedan mantener la consistencia con el aspecto de la plataforma nativa. Es común que diferentes plataformas, o diferentes estilos, tengan diferentes paletas.

Cuando asignas una nueva paleta a un widget, los roles de color de esta paleta se combinan con la paleta por defecto del widget para formar la paleta final del widget. La entrada de la paleta para el rol de fondo del widget se utiliza para rellenar el fondo del widget (ver QWidget::autoFillBackground), y el rol de primer plano inicializa el lápiz de QPainter.

El valor por defecto depende del entorno del sistema. QApplication mantiene una paleta de sistema/tema que sirve como valor por defecto para todos los widgets. También puede haber paletas especiales por defecto para ciertos tipos de widgets (por ejemplo, en Windows Vista, todas las clases que derivan de QMenuBar tienen una paleta especial por defecto). También puede definir usted mismo las paletas predeterminadas para los widgets pasando una paleta personalizada y el nombre de un widget a QApplication::setPalette(). Por último, el estilo siempre tiene la opción de pulir la paleta a medida que se asigna (véase QStyle::polish()).

QWidget propaga las funciones explícitas de la paleta de padres a hijos. Si asignas un pincel o color a un rol específico en una paleta y asignas esa paleta a un widget, ese rol se propagará a todos los hijos del widget, anulando cualquier valor por defecto del sistema para ese rol. Tenga en cuenta que, por defecto, las paletas no se propagan a las ventanas (consulte isWindow()) a menos que el atributo Qt::WA_WindowPropagation esté activado.

QWidgetLa propagación de las paletas es similar a la de las fuentes.

El estilo actual, que se utiliza para representar el contenido de todos los widgets estándar de Qt, es libre de elegir colores y pinceles de la paleta de widgets o, en algunos casos, de ignorar la paleta (parcial o completamente). En particular, ciertos estilos como GTK style, Mac style, y Windows Vista style, dependen de APIs de terceros para renderizar el contenido de los widgets, y estos estilos típicamente no siguen la paleta. Debido a esto, asignar roles a la paleta de un widget no garantiza que cambie la apariencia del widget. En su lugar, puede optar por aplicar una styleSheet.

Advertencia: No utilice esta función junto con las hojas de estilo de Qt. Cuando se usan hojas de estilo, la paleta de un widget puede personalizarse usando "color", "background-color", "selection-color", "selection-background-color" y "alternate-background-color".

Funciones de acceso:

const QPalette &palette() const
void setPalette(const QPalette &)

Véase también QGuiApplication::palette(), QWidget::font() y Hojas de estilo Qt.

pos : QPoint

Esta propiedad contiene la posición del widget dentro de su widget padre

Si el widget es una ventana, la posición es la del widget en el escritorio, incluyendo su marco.

Al cambiar la posición, el widget, si es visible, recibe un evento de movimiento (moveEvent()) inmediatamente. Si el widget no está visible, se garantiza que reciba un evento antes de mostrarse.

Por defecto, esta propiedad contiene una posición que hace referencia al origen.

Advertencia: Llamar a move() o setGeometry() dentro de moveEvent() puede llevar a una recursión infinita.

Consulte la documentación de Geometría de Ventanas para una visión general de los problemas de geometría con las ventanas.

Nota: No todos los sistemas de ventanas permiten establecer o consultar las posiciones de las ventanas de nivel superior. En tales sistemas, mover ventanas mediante programación puede no tener ningún efecto, y pueden devolverse valores artificiales para las posiciones actuales, como QPoint(0, 0).

Funciones de acceso:

QPoint pos() const
void move(int x, int y)
void move(const QPoint &)

Véase también frameGeometry, size, x(), y y().

[read-only] rect : QRect

Esta propiedad contiene la geometría interna del widget excluyendo cualquier marco de ventana

La propiedad rect es igual a QRect(0, 0, width(), height()).

Consulte la documentación de Geometría de Ventanas para una visión general de los problemas de geometría con las ventanas.

Por defecto, esta propiedad contiene un valor que depende de la plataforma del usuario y de la geometría de la pantalla.

Funciones de acceso:

QRect rect() const

Véase también size.

size : QSize

Esta propiedad mantiene el tamaño del widget excluyendo cualquier marco de ventana

Si el widget está visible cuando está siendo redimensionado, recibe un evento de redimensionamiento (resizeEvent()) inmediatamente. Si el widget no está visible en ese momento, se garantiza que reciba un evento antes de mostrarse.

El tamaño se ajusta si se encuentra fuera del rango definido por minimumSize() y maximumSize().

Por defecto, esta propiedad contiene un valor que depende de la plataforma del usuario y de la geometría de la pantalla.

Advertencia: Llamar a resize() o setGeometry() dentro de resizeEvent() puede llevar a una recursión infinita.

Nota: Establecer el tamaño a QSize(0, 0) hará que el widget no aparezca en pantalla. Esto también se aplica a las ventanas.

Funciones de acceso:

QSize size() const
void resize(int w, int h)
void resize(const QSize &)

Véase también pos, geometry, minimumSize, maximumSize, resizeEvent(), y adjustSize().

[read-only] sizeHint : QSize

Esta propiedad contiene el tamaño recomendado para el widget

Si el valor de esta propiedad es un tamaño inválido, no se recomienda ningún tamaño.

La implementación por defecto de sizeHint() devuelve un tamaño inválido si no hay diseño para este widget, y devuelve el tamaño preferido del diseño en caso contrario.

Funciones de acceso:

virtual QSize sizeHint() const

Véase también QSize::isValid(), minimumSizeHint(), sizePolicy(), setMinimumSize() y updateGeometry().

sizeIncrement : QSize

Esta propiedad contiene el incremento de tamaño del widget

Cuando el usuario redimensione la ventana, el tamaño se moverá en pasos de sizeIncrement().width() píxeles horizontalmente y sizeIncrement.height() píxeles verticalmente, con baseSize() como base. Los tamaños de widget preferidos son para enteros no negativos i y j:

width = baseSize().width() + i * sizeIncrement().width();
height = baseSize().height() + j * sizeIncrement().height();

Tenga en cuenta que aunque puede establecer el incremento de tamaño para todos los widgets, sólo afecta a las ventanas.

Por defecto, esta propiedad contiene un tamaño con anchura y altura cero.

Atención: El incremento de tamaño no tiene efecto en Windows, y puede ser ignorado por el gestor de ventanas en X11.

Funciones de acceso:

QSize sizeIncrement() const
void setSizeIncrement(const QSize &)
void setSizeIncrement(int w, int h)

Ver también size, minimumSize, y maximumSize.

sizePolicy : QSizePolicy

Esta propiedad contiene el comportamiento de diseño por defecto del widget

Si existe un QLayout que gestione los hijos de este widget, se utiliza la política de tamaño especificada por ese diseño. Si no existe tal QLayout, se utiliza el resultado de esta función.

La política por defecto es Preferido/Preferido, lo que significa que el widget puede ser redimensionado libremente, pero prefiere tener el tamaño que devuelve sizeHint(). Los widgets tipo botón establecen la política de tamaño para especificar que pueden estirarse horizontalmente, pero que están fijos verticalmente. Lo mismo se aplica a los controles de edición de líneas (como QLineEdit, QSpinBox o un QComboBox editable ) y otros widgets orientados horizontalmente (como QProgressBar). QToolButton's son normalmente cuadrados, por lo que permiten el crecimiento en ambas direcciones. Los widgets que admiten diferentes direcciones (como QSlider, QScrollBar o QHeader) especifican el estiramiento sólo en la dirección respectiva. Los widgets que pueden proporcionar barras de desplazamiento (normalmente subclases de QScrollArea) tienden a especificar que pueden utilizar espacio adicional, y que pueden conformarse con menos que sizeHint().

Funciones de acceso:

QSizePolicy sizePolicy() const
void setSizePolicy(QSizePolicy)
void setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

Véase también sizeHint(), QLayout, QSizePolicy, y updateGeometry().

statusTip : QString

Esta propiedad contiene el consejo de estado del widget

Por defecto, esta propiedad contiene una cadena vacía.

Funciones de acceso:

QString statusTip() const
void setStatusTip(const QString &)

Véase también toolTip y whatsThis.

styleSheet : QString

Esta propiedad contiene la hoja de estilo del widget

La hoja de estilo contiene una descripción textual de las personalizaciones del estilo del widget, como se describe en el documento Hojas de Estilo de Qt.

Desde Qt 4.5, las hojas de estilo de Qt son totalmente compatibles con macOS.

Advertencia: Las hojas de estilo de Qt no son compatibles actualmente con las subclases personalizadas de QStyle. Planeamos solucionar esto en una futura versión.

Funciones de acceso:

QString styleSheet() const
void setStyleSheet(const QString &styleSheet)

Véase también setStyle(), QApplication::styleSheet, y Hojas de estilo Qt.

tabletTracking : bool

Esta propiedad indica si el seguimiento de la tableta está habilitado para el widget.

Si el seguimiento de la tableta está deshabilitado (por defecto), el widget sólo recibe eventos de movimiento de la tableta cuando el lápiz está en contacto con la tableta, o al menos un botón del lápiz está pulsado, mientras el lápiz se está moviendo.

Si el seguimiento de la tableta está activado, el widget recibe eventos de movimiento de la tableta incluso mientras se mantiene en proximidad. Esto es útil para monitorizar la posición, así como las propiedades auxiliares como la rotación y la inclinación, y proporcionar información en la interfaz de usuario.

Funciones de acceso:

bool hasTabletTracking() const
void setTabletTracking(bool enable)

Véase también tabletEvent().

toolTip : QString

Esta propiedad contiene el tooltip del widget

Tenga en cuenta que, por defecto, la información sobre herramientas sólo se muestra en los widgets que son hijos de la ventana activa. Puede cambiar este comportamiento estableciendo el atributo Qt::WA_AlwaysShowToolTips en la ventana, no en el widget con la información sobre herramientas.

Si desea controlar el comportamiento de la información sobre herramientas, puede interceptar la función event() y capturar el evento QEvent::ToolTip (por ejemplo, si desea personalizar el área en la que debe mostrarse la información sobre herramientas).

Por defecto, esta propiedad contiene una cadena vacía.

Funciones de acceso:

QString toolTip() const
void setToolTip(const QString &)

Ver también QToolTip, statusTip, y whatsThis.

toolTipDuration : int

Esta propiedad contiene la duración de la información sobre herramientas del widget

Especifica cuánto tiempo se mostrará la información sobre herramientas, en milisegundos. Si el valor es -1 (por defecto), la duración se calcula en función de la longitud de la información sobre herramientas.

Funciones de acceso:

int toolTipDuration() const
void setToolTipDuration(int msec)

Véase también toolTip.

updatesEnabled : bool

Esta propiedad indica si las actualizaciones están habilitadas

Un widget con las actualizaciones activadas recibe eventos de pintura y tiene un fondo de sistema; un widget desactivado no. Esto también implica que llamar a update() y repaint() no tiene efecto si las actualizaciones están deshabilitadas.

Por defecto, esta propiedad es true.

setUpdatesEnabled() se utiliza normalmente para desactivar las actualizaciones durante un corto periodo de tiempo, por ejemplo para evitar el parpadeo de la pantalla durante cambios grandes. En Qt, los widgets normalmente no generan parpadeo en la pantalla, pero en X11 el servidor puede borrar regiones de la pantalla cuando los widgets se ocultan antes de que puedan ser reemplazados por otros widgets. Esto se soluciona desactivando las actualizaciones.

Ejemplo:

setUpdatesEnabled(false);
bigVisualChanges();
setUpdatesEnabled(true);

Desactivar un widget implícitamente desactiva todos sus hijos. Activar un widget activa todos los widgets hijos excepto los widgets de nivel superior o los que se han desactivado explícitamente. Al volver a activar las actualizaciones, se llama implícitamente a update() en el widget.

Funciones de acceso:

bool updatesEnabled() const
void setUpdatesEnabled(bool enable)

Véase también paintEvent().

visible : bool

Esta propiedad indica si el widget es visible

Llamar a setVisible(true) o show() pone el widget en estado visible si todos sus widgets padre hasta la ventana son visibles. Si un ancestro no es visible, el widget no se hará visible hasta que todos sus ancestros se muestren. Si su tamaño o posición ha cambiado, Qt garantiza que un widget recibe eventos de mover y redimensionar justo antes de mostrarse. Si el widget no ha sido redimensionado todavía, Qt ajustará el tamaño del widget a un tamaño útil por defecto usando adjustSize().

Llamar a setVisible(false) o hide() oculta un widget explícitamente. Un widget explícitamente oculto nunca se hará visible, incluso si todos sus ancestros se hacen visibles, a menos que lo muestres.

Un widget recibe eventos de mostrar y ocultar cuando cambia su estado de visibilidad. Entre un evento de ocultar y uno de mostrar, no hay necesidad de malgastar ciclos de CPU preparando o mostrando información al usuario. Una aplicación de vídeo, por ejemplo, puede simplemente dejar de generar nuevos fotogramas.

Un widget que resulta estar oscurecido por otras ventanas en la pantalla se considera visible. Lo mismo ocurre con las ventanas iconificadas y las ventanas que existen en otro escritorio virtual (en plataformas que admitan este concepto). Un widget recibe eventos espontáneos de mostrar y ocultar cuando el sistema de ventanas cambia su estado de asignación, por ejemplo, un evento espontáneo de ocultar cuando el usuario minimiza la ventana, y un evento espontáneo de mostrar cuando la ventana se restaura de nuevo.

Rara vez tendrá que reimplementar la función setVisible(). Si necesitas cambiar alguna configuración antes de que se muestre un widget, utiliza showEvent() en su lugar. Si necesitas hacer alguna inicialización retardada usa el evento polaco entregado a la función event().

Funciones de acceso:

bool isVisible() const
virtual void setVisible(bool visible)

Véase también show(), hide(), isHidden(), isVisibleTo(), isMinimized(), showEvent(), y hideEvent().

whatsThis : QString

Esta propiedad contiene el texto de ayuda What's This del widget.

Por defecto, esta propiedad contiene una cadena vacía.

Funciones de acceso:

QString whatsThis() const
void setWhatsThis(const QString &)

Véase también QWhatsThis, QWidget::toolTip, y QWidget::statusTip.

[read-only] width : int

Esta propiedad contiene el ancho del widget excluyendo cualquier marco de ventana

Consulte la documentación de Geometría de Vent anas para una visión general de los problemas de geometría con las ventanas.

Nota: No utilice esta función para encontrar la anchura de una pantalla en un escritorio multipantalla. Consulte QScreen para más detalles.

Por defecto, esta propiedad contiene un valor que depende de la plataforma del usuario y de la geometría de la pantalla.

Funciones de acceso:

int width() const

Véase también geometry, height, y size.

windowFilePath : QString

Esta propiedad contiene la ruta del archivo asociado a un widget

Esta propiedad sólo tiene sentido para las ventanas. Asocia una ruta de archivo con una ventana. Si estableces la ruta del archivo, pero no has establecido el título de la ventana, Qt establece el título de la ventana al nombre del archivo de la ruta especificada, obtenido usando QFileInfo::fileName().

Si el título de la ventana se establece en cualquier punto, entonces el título de la ventana tiene prioridad y se mostrará en lugar de la cadena de la ruta del archivo.

Además, en macOS, esto tiene el beneficio añadido de que establece el icono proxy para la ventana, asumiendo que la ruta del archivo existe.

Si no se establece ninguna ruta de archivo, esta propiedad contiene una cadena vacía.

Por defecto, esta propiedad contiene una cadena vacía.

Funciones de acceso:

QString windowFilePath() const
void setWindowFilePath(const QString &filePath)

Véase también windowTitle y windowIcon.

windowFlags : Qt::WindowFlags

Los indicadores de ventana son una combinación de un tipo (por ejemplo, Qt::Dialog) y cero o más sugerencias para el sistema de ventanas (por ejemplo, Qt::FramelessWindowHint).

Si el widget era del tipo Qt::Widget o Qt::SubWindow y se convierte en una ventana (Qt::Window, Qt::Dialog, etc.), se coloca en la posición (0, 0) del escritorio. Si el widget es una ventana y se convierte en Qt::Widget o Qt::SubWindow, se coloca en la posición (0, 0) relativa a su widget padre.

Nota: Esta función llama a setParent() cuando se cambian las banderas de una ventana, haciendo que el widget se oculte. Debes llamar a show() para que el widget vuelva a ser visible..

Funciones de acceso:

Qt::WindowFlags windowFlags() const
void setWindowFlags(Qt::WindowFlags type)

Ver también windowType(), setWindowFlag(), y Window Flags Ejemplo.

windowIcon : QIcon

Esta propiedad contiene el icono del widget

Esta propiedad sólo tiene sentido para las ventanas. Si no se ha establecido ningún icono, windowIcon() devuelve el icono de la aplicación (QApplication::windowIcon()).

Nota: En macOS, los iconos de ventana representan el documento activo, y no se mostrarán a menos que también se haya establecido una ruta de archivo mediante setWindowFilePath.

Funciones de acceso:

QIcon windowIcon() const
void setWindowIcon(const QIcon &icon)

Señal del notificador:

void windowIconChanged(const QIcon &icon)

Véase también windowTitle y setWindowFilePath.

windowModality : Qt::WindowModality

Esta propiedad mantiene qué ventanas son bloqueadas por el widget modal

Esta propiedad sólo tiene sentido para las ventanas. Un widget modal impide que los widgets de otras ventanas reciban entradas. El valor de esta propiedad controla qué ventanas son bloqueadas cuando el widget es visible. Cambiar esta propiedad mientras la ventana está visible no tiene ningún efecto; primero debe hide() el widget, y después show() de nuevo.

Por defecto, esta propiedad es Qt::NonModal.

Funciones de acceso:

Qt::WindowModality windowModality() const
void setWindowModality(Qt::WindowModality windowModality)

Véase también isWindow(), QWidget::modal, y QDialog.

windowModified : bool

Esta propiedad mantiene si el documento mostrado en la ventana tiene cambios sin guardar

Una ventana modificada es una ventana cuyo contenido ha cambiado pero no ha sido guardado en disco. Esta bandera tendrá diferentes efectos según la plataforma. En macOS el botón de cerrar tendrá un aspecto modificado; en otras plataformas, el título de la ventana tendrá un '*' (asterisco).

El título de la ventana debe contener un marcador de posición "[*]", que indica dónde debe aparecer el '*'. Normalmente, debe aparecer justo después del nombre del archivo (por ejemplo, "documento1.txt[*] - Editor de texto"). Si la ventana no se modifica, el marcador de posición simplemente se elimina.

Tenga en cuenta que si un widget se establece como modificado, todos sus ancestros también se establecerán como modificados. Sin embargo, si llamas a setWindowModified(false) en un widget, esto no se propagará a su padre porque otros hijos del padre podrían haber sido modificados.

Funciones de acceso:

bool isWindowModified() const
void setWindowModified(bool)

Véase también windowTitle.

windowOpacity : double

Esta propiedad contiene el nivel de opacidad de la ventana.

El rango válido de opacidad es de 1.0 (completamente opaca) a 0.0 (completamente transparente).

Por defecto, el valor de esta propiedad es 1.0.

Esta característica está disponible en las plataformas Embedded Linux, macOS, Windows y X11 que soportan la extensión Composite.

Nota: En X11 necesitas tener un gestor de composite en ejecución, y el átomo _NET_WM_WINDOW_OPACITY específico de X11 necesita ser soportado por el gestor de ventanas que estés utilizando.

Advertencia: Cambiar esta propiedad de opaca a transparente puede generar un evento paint que debe ser procesado antes de que la ventana se muestre correctamente. Esto afecta principalmente al uso de QScreen::grabWindow(). Ten en cuenta también que las ventanas semitransparentes se actualizan y redimensionan significativamente más despacio que las opacas.

Funciones de acceso:

qreal windowOpacity() const
void setWindowOpacity(qreal level)

Véase también setMask().

windowTitle : QString

Esta propiedad contiene el título de la ventana (caption)

Esta propiedad sólo tiene sentido para widgets de nivel superior, como ventanas y cuadros de diálogo. Si no se ha establecido ningún caption, el título se basa en windowFilePath. Si no se establece ninguno de los dos, entonces el título es una cadena vacía.

Si se utiliza el mecanismo windowModified, el título de la ventana debe contener un marcador de posición "[*]", que indica dónde debe aparecer el '*'. Normalmente, debe aparecer justo después del nombre del archivo (por ejemplo, "documento1.txt[*] - Editor de texto"). Si la propiedad windowModified es false (por defecto), el marcador de posición simplemente se elimina.

En algunas plataformas de escritorio (incluyendo Windows y Unix), el nombre de la aplicación (de QGuiApplication::applicationDisplayName) se añade al final del título de la ventana, si está establecido. Esto lo hace el plugin QPA, por lo que se muestra al usuario, pero no forma parte de la cadena windowTitle.

Funciones de acceso:

QString windowTitle() const
void setWindowTitle(const QString &)

Señal del notificador:

void windowTitleChanged(const QString &title)

Véase también windowIcon, windowModified, y windowFilePath.

[read-only] x : int

Esta propiedad contiene la coordenada x del widget relativa a su padre, incluyendo cualquier marco de ventana.

Consulte la documentación de Geometría de Vent anas para una visión general de los problemas de geometría con las ventanas.

Por defecto, esta propiedad tiene un valor de 0.

Funciones de acceso:

int x() const

Ver también frameGeometry, y, y pos.

[read-only] y : int

Esta propiedad contiene la coordenada y del widget relativa a su padre e incluyendo cualquier marco de ventana

Consulte la documentación de Geometría de Vent anas para una visión general de los problemas de geometría con las ventanas.

Por defecto, esta propiedad tiene un valor de 0.

Funciones de acceso:

int y() const

Véase también frameGeometry, x, y pos.

Documentación de las funciones miembro

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

Construye un widget que es hijo de parent, con las banderas de widget establecidas en f.

Si parent es nullptr, el nuevo widget se convierte en una ventana. Si parent es otro widget, este widget se convierte en una ventana hija dentro de parent. El nuevo widget se elimina cuando se elimina su parent.

El argumento de las banderas del widget, f, es normalmente 0, pero puede establecerse para personalizar el marco de una ventana (es decir, parent debe ser nullptr). Para personalizar el marco, utilice un valor compuesto a partir del OR bitwise de cualquiera de los window flags.

Si añades un widget hijo a un widget ya visible, debes mostrar explícitamente el hijo para hacerlo visible.

Tenga en cuenta que la versión X11 de Qt puede no ser capaz de ofrecer todas las combinaciones de banderas de estilo en todos los sistemas. Esto se debe a que en X11, Qt sólo puede preguntar al gestor de ventanas, y el gestor de ventanas puede anular la configuración de la aplicación. En Windows, Qt puede establecer cualquier bandera que desee.

Véase también windowFlags.

[virtual noexcept] QWidget::~QWidget()

Destruye el widget.

Todos los hijos de este widget se borran primero. La aplicación se cierra si este widget es el widget principal.

[virtual protected] void QWidget::actionEvent(QActionEvent *event)

Este manejador de eventos es llamado con el event dado cada vez que se cambian las acciones del widget.

Véase también addAction(), insertAction(), removeAction(), actions(), y QActionEvent.

QList<QAction *> QWidget::actions() const

Devuelve la lista (posiblemente vacía) de las acciones de este widget.

Véase también contextMenuPolicy, insertAction(), y removeAction().

void QWidget::activateWindow()

Establece el widget de nivel superior que contiene este widget como ventana activa.

Una ventana activa es una ventana visible de nivel superior que tiene el foco de entrada del teclado.

Esta función realiza la misma operación que hacer clic con el ratón en la barra de título de una ventana de nivel superior. En X11, el resultado depende del gestor de ventanas. Si desea asegurarse de que la ventana también se apila en la parte superior, también debe llamar a raise(). Tenga en cuenta que la ventana debe ser visible, de lo contrario activateWindow() no tiene ningún efecto.

En Windows, si llama a esta función cuando la aplicación no es actualmente la activa, entonces no la convertirá en la ventana activa. Cambiará el color de la entrada de la barra de tareas para indicar que la ventana ha cambiado de alguna manera. Esto se debe a que Microsoft no permite que una aplicación interrumpa lo que el usuario está haciendo actualmente en otra aplicación.

Véase también isActiveWindow(), window(), y show().

void QWidget::addAction(QAction *action)

Añade la acción action a la lista de acciones de este widget.

Todos los QWidgets tienen una lista de QActions. Sin embargo, pueden representarse gráficamente de muchas maneras diferentes. El uso por defecto de la lista QAction (devuelta por actions()) es crear un contexto QMenu.

Un QWidget sólo debe tener una de cada acción y añadir una acción que ya tenga no hará que la misma acción esté dos veces en el widget.

La propiedad de action no se transfiere a este QWidget.

Véase también removeAction(), insertAction(), actions(), y QMenu.

[since 6.3] QAction *QWidget::addAction(const QString &text)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut)

Estas funciones crean una nueva acción con el texto text, el icono icon y el acceso directo shortcut, si lo hay.

Las funciones añaden la acción recién creada a la lista de acciones del widget y la devuelven.

QWidget toma posesión de la acción devuelta QAction.

Estas funciones se introdujeron en Qt 6.3.

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, Args &&... args)

[since 6.3] template <typename... Args, typename = QWidget::compatible_action_slot_args<Args...>> QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, Args &&... args)

Estas funciones de conveniencia crean una nueva acción con el texto text, el icono icon, y el acceso directo shortcut, si existe.

La señal triggered() de la acción se conecta como si fuera una llamada a QObject::connect(action, &QAction::triggered, args...), reenviando perfectamente args, incluyendo un posible Qt::ConnectionType.

La función añade la acción recién creada a la lista de acciones del widget y la devuelve.

QWidget toma posesión de la acción devuelta QAction.

Estas funciones se introdujeron en Qt 6.3.

[since 6.3] QAction *QWidget::addAction(const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

[since 6.3] QAction *QWidget::addAction(const QIcon &icon, const QString &text, const QKeySequence &shortcut, const QObject *receiver, const char *member, Qt::ConnectionType type = Qt::AutoConnection)

Esta función crea una nueva acción con el texto text, el icono icon, y el atajo shortcut, si existe.

La señal triggered() de la acción se conecta a la ranura receiver's member. La función añade la acción recién creada a la lista de acciones del widget y la devuelve.

QWidget toma posesión de la acción devuelta QAction.

Estas funciones se introdujeron en Qt 6.3.

void QWidget::addActions(const QList<QAction *> &actions)

Añade las acciones actions a la lista de acciones de este widget.

Véase también removeAction(), QMenu, y addAction().

void QWidget::adjustSize()

Ajusta el tamaño del widget para que se ajuste a su contenido.

Esta función utiliza sizeHint() si es válido, es decir, si la anchura y la altura de la sugerencia de tamaño son >= 0. En caso contrario, ajusta el tamaño al rectángulo hijo que abarca todos los widgets hijos (la unión de todos los rectángulos de widgets hijos).

En el caso de las ventanas, también se tiene en cuenta el tamaño de la pantalla. Si sizeHint() es menor que (200, 100) y la política de tamaño es expanding, la ventana tendrá un tamaño mínimo de (200, 100). El tamaño máximo de una ventana es 2/3 de la anchura y la altura de la pantalla.

Véase también sizeHint() y childrenRect().

QPalette::ColorRole QWidget::backgroundRole() const

Devuelve el rol de fondo del widget.

El rol de fondo define el pincel de palette del widget que se utiliza para representar el fondo.

Si no se establece un rol de fondo explícito, el widget hereda el rol de fondo de su widget padre.

Véase también setBackgroundRole() y foregroundRole().

QBackingStore *QWidget::backingStore() const

Devuelve el QBackingStore en el que se dibujará este widget.

[virtual protected] void QWidget::changeEvent(QEvent *event)

Este manejador de eventos puede ser reimplementado para manejar cambios de estado.

El estado que se cambia en este evento se puede recuperar a través de la event suministrada.

Los eventos de cambio incluyen: QEvent::ToolBarChange, QEvent::ActivationChange, QEvent::EnabledChange, QEvent::FontChange, QEvent::StyleChange, QEvent::PaletteChange, QEvent::WindowTitleChange, QEvent::IconTextChange, QEvent::ModifiedChange, QEvent::MouseTrackingChange, QEvent::ParentChange, QEvent::WindowStateChange, QEvent::LanguageChange, QEvent::LocaleChange, QEvent::LayoutDirectionChange, QEvent::ReadOnlyChange.

QWidget *QWidget::childAt(int x, int y) const

Devuelve el widget hijo visible en la posición (x, y) en el sistema de coordenadas del widget. Si no hay ningún widget hijo visible en la posición especificada, la función devuelve nullptr.

QWidget *QWidget::childAt(const QPoint &p) const

Devuelve el widget hijo visible en el punto p en el sistema de coordenadas del propio widget.

Se trata de una función sobrecargada.

[since 6.8] QWidget *QWidget::childAt(const QPointF &p) const

Devuelve el widget hijo visible en el punto p en el sistema de coordenadas del propio widget.

Se trata de una función sobrecargada.

Esta función se introdujo en Qt 6.8.

void QWidget::clearFocus()

Toma el foco de entrada de teclado del widget.

Si el widget tiene el foco activo, se envía un focus out event a este widget para decirle que ha perdido el foco.

Este widget debe activar el foco para obtener el foco de entrada del teclado; es decir, debe llamar a setFocusPolicy().

Véase también hasFocus(), setFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), y QApplication::focusWidget().

void QWidget::clearMask()

Elimina cualquier máscara establecida por setMask().

Véase también setMask().

[slot] bool QWidget::close()

Cierra este widget. Devuelve true si el widget fue cerrado; en caso contrario devuelve false.

Primero envía al widget un QCloseEvent. El widget es hidden si accepts el evento de cierre. Si ignores el evento, no ocurre nada. La implementación por defecto de QWidget::closeEvent() acepta el evento de cierre.

Si el widget tiene la bandera Qt::WA_DeleteOnClose, el widget también es eliminado. Un evento de cierre es enviado al widget sin importar si el widget es visible o no.

La señal QGuiApplication::lastWindowClosed() se emite cuando se cierra la última ventana primaria visible (es decir, la ventana sin padre) con el atributo Qt::WA_QuitOnClose establecido. Por defecto, este atributo está establecido para todos los widgets excepto para las ventanas transitorias, como las pantallas de inicio, las ventanas de herramientas y los menús emergentes.

[virtual protected] void QWidget::closeEvent(QCloseEvent *event)

Este manejador de eventos es llamado con el event dado cuando Qt recibe una petición de cierre de ventana para un widget de nivel superior desde el sistema de ventanas.

Por defecto, el evento es aceptado y el widget se cierra. Puedes reimplementar esta función para cambiar la forma en que el widget responde a las peticiones de cierre de ventana. Por ejemplo, puedes evitar que la ventana se cierre llamando a ignore() en todos los eventos.

Las aplicaciones de ventana principal suelen utilizar reimplementaciones de esta función para comprobar si se ha guardado el trabajo del usuario y pedir permiso antes de cerrar.

Véase también event(), hide(), close(), y QCloseEvent.

QMargins QWidget::contentsMargins() const

La función contentsMargins devuelve los márgenes de contenido del widget.

Véase también setContentsMargins() y contentsRect().

QRect QWidget::contentsRect() const

Devuelve el área dentro de los márgenes del widget.

Véase también setContentsMargins() y contentsMargins().

[virtual protected] void QWidget::contextMenuEvent(QContextMenuEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos del menú contextual del widget.

El manejador es llamado cuando el widget contextMenuPolicy es Qt::DefaultContextMenu.

La implementación por defecto ignora el evento de contexto. Consulta la documentación de QContextMenuEvent para más detalles.

Véase también event(), QContextMenuEvent, y customContextMenuRequested().

[protected] void QWidget::create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)

Crea una nueva ventana de widget.

Los parámetros window, initializeWindow, y destroyOldWindow son ignorados en Qt 5. Por favor, utilice QWindow::fromWinId() para crear un QWindow envolviendo una ventana ajena y páselo a QWidget::createWindowContainer() en su lugar.

Véase también createWindowContainer() y QWindow::fromWinId().

[static] QWidget *QWidget::createWindowContainer(QWindow *window, QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())

Crea un QWidget que permite incrustar window en una aplicación basada en QWidget.

El contenedor de ventanas se crea como hijo de parent y con los indicadores de ventana flags.

Una vez incrustada la ventana en el contenedor, éste controlará la geometría y visibilidad de la ventana. No se recomienda realizar llamadas explícitas a QWindow::setGeometry(), QWindow::show() o QWindow::hide() en una ventana incrustada.

El contenedor asume la propiedad de window. La ventana puede eliminarse del contenedor de ventanas con una llamada a QWindow::setParent().

El contenedor de ventanas se adjunta como ventana hija nativa a la ventana de nivel superior de la que es hija. Cuando un contenedor de ventanas se utiliza como hijo de QAbstractScrollArea o QMdiArea, creará un native window para cada widget de su cadena padre para permitir el apilamiento y recorte adecuados en este caso de uso. La creación de una ventana nativa para el contenedor de ventanas también permite un apilamiento y recorte adecuados. Esto debe hacerse antes de mostrar la ventana contenedora. Las aplicaciones con muchas ventanas hijas nativas pueden sufrir problemas de rendimiento.

El contenedor de ventanas tiene una serie de limitaciones conocidas:

  • Orden de apilamiento; La ventana incrustada se apilará encima de la jerarquía de widgets como una caja opaca. El orden de apilamiento de varias ventanas contenedoras superpuestas no está definido.
  • Integración de renderizado; El contenedor de ventanas no interopera con QGraphicsProxyWidget, QWidget::render() o funcionalidades similares.
  • Manejo del foco; Es posible dejar que la instancia de contenedor de ventana tenga cualquier política de foco y delegará el foco a la ventana a través de una llamada a QWindow::requestActivate(). Sin embargo, volver a la cadena de enfoque normal desde la instancia QWindow dependerá de la propia implementación de la instancia QWindow. También, si QWindow::requestActivate() realmente da el foco a la ventana, depende de la plataforma.

    Desde la versión 6.8, si se incrusta una ventana basada en Qt Quick, al pulsar el tabulador se realiza una transición dentro y fuera de la ventana QML incrustada, permitiendo que el foco se mueva al objeto enfocable siguiente o anterior en la cadena contenedora de la ventana.

  • El uso de muchas instancias de contenedores de ventanas en una aplicación basada en QWidget puede perjudicar enormemente el rendimiento general de la aplicación.
  • Desde la versión 6.7, si window pertenece a un widget (es decir, window se recibió al llamar a windowHandle()), no se creará ningún contenedor. En su lugar, esta función devolverá el propio widget, después de ser reparentado a parent. Dado que no se creará ningún contenedor, flags será ignorado. En otras palabras, si window pertenece a un widget, considera simplemente reparenting ese widget a parent en lugar de utilizar esta función.

[signal] void QWidget::customContextMenuRequested(const QPoint &pos)

Esta señal se emite cuando la contextMenuPolicy del widget es Qt::CustomContextMenu, y el usuario ha solicitado un menú contextual en el widget. La posición pos es la posición del evento de menú contextual que recibe el widget. Normalmente está en coordenadas del widget. La excepción a esta regla es QAbstractScrollArea y sus subclases que mapean el evento de menú contextual a coordenadas del viewport().

Véase también mapToGlobal(), QMenu, y contextMenuPolicy.

[protected] void QWidget::destroy(bool destroyWindow = true, bool destroySubWindows = true)

Libera recursos del sistema de ventanas. Destruye la ventana del widget si destroyWindow es verdadero.

destroy() se llama a sí misma recursivamente para todos los widgets hijos, pasando destroySubWindows como parámetro destroyWindow. Para tener más control sobre la destrucción de los subwidgets, destruya primero los subwidgets de forma selectiva.

Esta función se llama normalmente desde el destructor QWidget.

[virtual protected] void QWidget::dragEnterEvent(QDragEnterEvent *event)

Este manejador de eventos es llamado cuando un arrastre está en progreso y el ratón entra en este widget. El evento se pasa en el parámetro event.

Si el evento es ignorado, el widget no recibirá ningún drag move events.

Consulta la documentación Arrastrar y soltar para obtener una visión general de cómo proporcionar la función arrastrar y soltar en tu aplicación.

Véase también QDrag y QDragEnterEvent.

[virtual protected] void QWidget::dragLeaveEvent(QDragLeaveEvent *event)

Este manejador de eventos es llamado cuando un arrastre está en progreso y el ratón abandona este widget. El evento se pasa en el parámetro event.

Consulta la documentación Arrastrar y soltar para obtener una visión general de cómo proporcionar la función arrastrar y soltar en tu aplicación.

Véase también QDrag y QDragLeaveEvent.

[virtual protected] void QWidget::dragMoveEvent(QDragMoveEvent *event)

Este manejador de eventos es llamado si un arrastre está en progreso, y cuando cualquiera de las siguientes condiciones ocurren: el cursor entra en este widget, el cursor se mueve dentro de este widget, o una tecla modificadora es presionada en el teclado mientras este widget tiene el foco. El evento se pasa en el parámetro event.

Consulta la documentación Arrastrar y soltar para obtener una visión general de cómo proporcionar la función arrastrar y soltar en tu aplicación.

Véase también QDrag y QDragMoveEvent.

[virtual protected] void QWidget::dropEvent(QDropEvent *event)

Este manejador de eventos es llamado cuando el arrastre es soltado en este widget. El evento se pasa en el parámetro event.

Consulta la documentación de arrastrar y soltar para obtener una visión general de cómo proporcionar arrastrar y soltar en tu aplicación.

Ver también QDrag y QDropEvent.

WId QWidget::effectiveWinId() const

Devuelve el identificador efectivo del sistema de ventanas del widget, es decir, el identificador del sistema de ventanas del padre nativo.

Si el widget es nativo, esta función devuelve el identificador del widget nativo. En caso contrario, devuelve el identificador de ventana del primer widget padre nativo, es decir, el widget de nivel superior que contiene este widget.

Nota: Se recomienda no almacenar este valor, ya que es probable que cambie en tiempo de ejecución.

Véase también nativeParentWidget().

void QWidget::ensurePolished() const

Asegura que el widget y sus hijos han sido pulidos por QStyle (es decir, tienen una fuente y paleta adecuadas).

QWidget llama a esta función después de que se haya construido completamente pero antes de que se muestre por primera vez. Puedes llamar a esta función si quieres asegurarte de que el widget está pulido antes de realizar una operación, por ejemplo, el tamaño de fuente correcto podría ser necesario en la reimplementación de sizeHint() del widget. Tenga en cuenta que esta función se llama desde la implementación por defecto de sizeHint().

El pulido es útil para la inicialización final que debe ocurrir después de que todos los constructores (tanto de clases base como de subclases) hayan sido llamados.

Si necesitas cambiar algunos ajustes cuando un widget es pulido, reimplementa event() y maneja el tipo de evento QEvent::Polish.

Nota: La función se declara const para que pueda ser llamada desde otras funciones const (por ejemplo, sizeHint()).

Véase también event().

[virtual protected] void QWidget::enterEvent(QEnterEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de entrada al widget que son pasados en el parámetro event.

Se envía un evento al widget cuando el cursor del ratón entra en el widget.

Ver también leaveEvent(), mouseMoveEvent(), y event().

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

Reimplementa: QObject::event(QEvent *e).

Este es el manejador de eventos principal; maneja el evento event. Puede reimplementar esta función en una subclase, pero recomendamos usar uno de los manejadores de eventos especializados en su lugar.

Los eventos de pulsación y liberación de teclas se tratan de forma diferente a otros eventos. event() comprueba si hay Tabulador y Mayús+Tabulador e intenta mover el foco apropiadamente. Si no hay widget al que mover el foco (o la tecla pulsada no es Tab o Shift+Tab), event() llama a keyPressEvent().

El manejo de eventos de ratón y tableta es también ligeramente especial: sólo cuando el widget es enabled, event() llamará a los manejadores especializados como mousePressEvent(); en caso contrario descartará el evento.

Esta función devuelve true si el evento fue reconocido, en caso contrario devuelve false. Si el evento reconocido fue aceptado (ver QEvent::accepted), cualquier procesamiento posterior como la propagación del evento al widget padre se detiene.

Véase también closeEvent(), focusInEvent(), focusOutEvent(), enterEvent(), keyPressEvent(), keyReleaseEvent(), leaveEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), mousePressEvent(), mouseReleaseEvent(), moveEvent(), paintEvent(), resizeEvent(), QObject::event(), y QObject::timerEvent().

[static] QWidget *QWidget::find(WId id)

Devuelve un puntero al widget con identificador/manejador de ventana id.

El tipo de identificador de ventana depende del sistema de ventanas subyacente, véase qwindowdefs.h para la definición real. Si no hay ningún widget con este identificador, se devuelve nullptr.

[virtual protected] void QWidget::focusInEvent(QFocusEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de foco de teclado (foco recibido) para el widget. El evento se pasa en el parámetro event

Un widget normalmente debe setFocusPolicy() a algo distinto de Qt::NoFocus para recibir eventos de foco. (Ten en cuenta que el programador de la aplicación puede llamar a setFocus() en cualquier widget, incluso en aquellos que normalmente no aceptan el foco).

La implementación por defecto actualiza el widget (excepto para las ventanas que no especifican un focusPolicy()).

Véase también focusOutEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event(), y QFocusEvent.

[protected] bool QWidget::focusNextChild()

Busca un nuevo widget al que dar el foco del teclado, según sea apropiado para Tab, y devuelve true si puede encontrar un nuevo widget, o false si no puede.

Véase también focusPreviousChild().

[virtual protected] bool QWidget::focusNextPrevChild(bool next)

Busca un nuevo widget al que dar el foco del teclado, según sea apropiado para Tab y Shift+Tab, y devuelve true si puede encontrar un nuevo widget, o false si no puede.

Si next es verdadero, esta función busca hacia adelante, si next es falso, busca hacia atrás.

A veces, querrás reimplementar esta función. Por ejemplo, un navegador web podría reimplementarla para mover su "enlace activo actual" hacia adelante o hacia atrás, y llamar a focusNextPrevChild() sólo cuando alcanza el último o el primer enlace de la "página".

Los widgets hijos llaman a focusNextPrevChild() en sus widgets padres, pero sólo la ventana que contiene los widgets hijos decide a dónde redirigir el foco. Al reimplementar esta función para un objeto, se obtiene el control del desplazamiento del foco para todos los widgets hijos.

Véase también focusNextChild() y focusPreviousChild().

[virtual protected] void QWidget::focusOutEvent(QFocusEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de foco de teclado (foco perdido) para el widget. Los eventos se pasan en el parámetro event.

Un widget normalmente debe setFocusPolicy() a algo distinto de Qt::NoFocus para recibir eventos de foco. (Ten en cuenta que el programador de la aplicación puede llamar a setFocus() en cualquier widget, incluso en aquellos que normalmente no aceptan el foco).

La implementación por defecto actualiza el widget (excepto para las ventanas que no especifican un focusPolicy()).

Véase también focusInEvent(), setFocusPolicy(), keyPressEvent(), keyReleaseEvent(), event(), y QFocusEvent.

[protected] bool QWidget::focusPreviousChild()

Busca un nuevo widget al que dar el foco del teclado, según sea apropiado para Shift+Tab, y devuelve true si puede encontrar un nuevo widget, o false si no puede.

Véase también focusNextChild().

QWidget *QWidget::focusProxy() const

Devuelve el proxy de enfoque, o nullptr si no hay proxy de enfoque.

Véase también setFocusProxy().

QWidget *QWidget::focusWidget() const

Devuelve el último hijo de este widget sobre el que se ha llamado a setFocus. Para los widgets de nivel superior, este es el widget que obtendrá el foco en caso de que esta ventana se active.

Esto no es lo mismo que QApplication::focusWidget(), que devuelve el widget enfocado en la ventana actualmente activa.

QFontInfo QWidget::fontInfo() const

Devuelve la información de la fuente actual del widget. Equivale a QFontInfo(widget->font()).

Véase también font(), fontMetrics() y setFont().

QFontMetrics QWidget::fontMetrics() const

Devuelve las métricas de la fuente actual del widget. Equivale a QFontMetrics(widget->font()).

Véase también font(), fontInfo() y setFont().

QPalette::ColorRole QWidget::foregroundRole() const

Devuelve el rol de primer plano.

El rol de primer plano define el color de palette del widget que se utiliza para dibujar el primer plano.

Si no se establece explícitamente un rol de primer plano, la función devuelve un rol que contrasta con el rol de fondo.

Véase también setForegroundRole() y backgroundRole().

[invokable] QPixmap QWidget::grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)))

Renderiza el widget en un mapa de píxeles restringido por la dirección rectangle. Si el widget tiene hijos, también se pintan en las posiciones apropiadas.

Si se especifica un rectángulo con un tamaño no válido (por defecto), se pintará todo el widget.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

Véase también render() y QPixmap.

void QWidget::grabGesture(Qt::GestureType gesture, Qt::GestureFlags flags = Qt::GestureFlags())

Suscribe el widget a un determinado gesture con flags específico.

Véase también ungrabGesture() y QGestureEvent.

void QWidget::grabKeyboard()

Toma la entrada del teclado.

Este widget recibe todos los eventos de teclado hasta que se llama a releaseKeyboard(); otros widgets no reciben ningún evento de teclado. Los eventos de ratón no se ven afectados. Usa grabMouse() si quieres cogerlos.

El widget de foco no se ve afectado, excepto que no recibe ningún evento de teclado. setFocus() mueve el foco como de costumbre, pero el nuevo widget de foco recibe eventos de teclado sólo después de llamar a releaseKeyboard().

Si un widget diferente está capturando la entrada del teclado, la captura de ese widget se libera primero.

Véase también releaseKeyboard(), grabMouse(), releaseMouse(), y focusWidget().

void QWidget::grabMouse()

Toma la entrada del ratón.

Este widget recibe todos los eventos de ratón hasta que se llama a releaseMouse(); otros widgets no reciben ningún evento de ratón. Los eventos de teclado no se ven afectados. Usa grabKeyboard() si quieres tomarlos.

Advertencia: Los errores en las aplicaciones que agarran el ratón muy a menudo bloquean el terminal. Use esta función con extrema precaución, y considere usar la opción de línea de comandos -nograb mientras depura.

Rara vez es necesario agarrar el ratón cuando se usa Qt, ya que Qt lo agarra y lo suelta con sensatez. En particular, Qt agarra el ratón cuando se pulsa un botón del ratón y lo mantiene hasta que se suelta el último botón.

Nota: Sólo los widgets visibles pueden agarrar la entrada del ratón. Si isVisible() devuelve false para un widget, ese widget no puede llamar a grabMouse().

Nota: En Windows, grabMouse() sólo funciona cuando el ratón está dentro de una ventana propiedad del proceso. En macOS, grabMouse() sólo funciona cuando el ratón está dentro del marco de ese widget.

Véase también releaseMouse(), grabKeyboard(), y releaseKeyboard().

void QWidget::grabMouse(const QCursor &cursor)

Toma la entrada del ratón y cambia la forma del cursor.

El cursor asumirá la forma cursor (mientras se mantenga el foco del ratón) y este widget será el único que reciba eventos del ratón hasta que se llame a releaseMouse()().

Advertencia: Agarrar el ratón puede bloquear el terminal.

Nota: Ver la nota en QWidget::grabMouse().

Esta función sobrecarga QWidget::grabMouse().

Ver también releaseMouse(), grabKeyboard(), releaseKeyboard(), y setCursor().

int QWidget::grabShortcut(const QKeySequence &key, Qt::ShortcutContext context = Qt::WindowShortcut)

Añade un acceso directo al sistema de accesos directos de Qt que busca la secuencia key dada en el context dado. Si context es Qt::ApplicationShortcut, el acceso directo se aplica a toda la aplicación. De lo contrario, es local a este widget, Qt::WidgetShortcut, o a la propia ventana, Qt::WindowShortcut.

Si la misma secuencia key ha sido capturada por varios widgets, cuando se produce la secuencia key se envía un evento QEvent::Shortcut a todos los widgets a los que se aplica en un orden no determinista, pero con la bandera ``ambigua'' puesta a true.

Advertencia: Normalmente no debería necesitar utilizar esta función; en su lugar, cree QActions con las secuencias de teclas de acceso directo que necesite (si también desea opciones de menú y botones de barra de herramientas equivalentes), o cree QShortcuts si sólo necesita secuencias de teclas. Tanto QAction como QShortcut manejan todo el filtrado de eventos por ti, y proporcionan señales que se activan cuando el usuario activa la secuencia de teclas, por lo que son mucho más fáciles de usar que esta función de bajo nivel.

Véase también releaseShortcut() y setShortcutEnabled().

QGraphicsEffect *QWidget::graphicsEffect() const

La función graphicsEffect devuelve un puntero al efecto gráfico del widget.

Si el widget no tiene efecto gráfico, se devuelve nullptr.

Véase también setGraphicsEffect().

QGraphicsProxyWidget *QWidget::graphicsProxyWidget() const

Devuelve el widget proxy para el widget incrustado correspondiente en una vista gráfica; en caso contrario devuelve nullptr.

Véase también QGraphicsProxyWidget::createProxyForChildWidget() y QGraphicsScene::addWidget().

bool QWidget::hasEditFocus() const

Devuelve true si este widget tiene actualmente el foco de edición; en caso contrario, false.

Esta función sólo está disponible en Qt for Embedded Linux.

Véase también setEditFocus() y QApplication::navigationMode().

[virtual] bool QWidget::hasHeightForWidth() const

Devuelve true si la altura preferida del widget depende de su anchura; en caso contrario devuelve false.

[virtual] int QWidget::heightForWidth(int w) const

Devuelve la altura preferida para este widget, dada la anchura w.

Si este widget tiene un diseño, la implementación por defecto devuelve la altura preferida del diseño. Si no hay diseño, la implementación por defecto devuelve -1 indicando que la altura preferida no depende de la anchura.

[slot] void QWidget::hide()

Oculta el widget. Esta función es equivalente a setVisible(false).

Nota: Si está trabajando con QDialog o sus subclases e invoca la función show() después de esta función, el diálogo se mostrará en su posición original.

Véase también hideEvent(), isHidden(), show(), setVisible(), isVisible() y close().

[virtual protected] void QWidget::hideEvent(QHideEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de ocultación de widgets. El evento se pasa en el parámetro event.

Los eventos de ocultación se envían a los widgets inmediatamente después de que hayan sido ocultados.

Nota: Un widget recibe eventos espontáneos de mostrar y ocultar cuando su estado de asignación es cambiado por el sistema de ventanas, por ejemplo, un evento espontáneo de ocultar cuando el usuario minimiza la ventana, y un evento espontáneo de mostrar cuando la ventana es restaurada de nuevo. Tras recibir un evento de ocultación espontánea, un widget sigue considerándose visible en el sentido de isVisible().

Véase también visible, event(), y QHideEvent.

[override virtual protected] void QWidget::initPainter(QPainter *painter) const

Inicializa la pluma, el fondo y la fuente de painter a los mismos que los del widget dado. Esta función se ejecuta automáticamente cuando se abre el pintor en QWidget.

[virtual protected] void QWidget::inputMethodEvent(QInputMethodEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de composición del Método de Entrada. Este manejador es llamado cuando el estado del método de entrada cambia.

Tenga en cuenta que al crear widgets de edición de texto personalizados, el atributo de ventana Qt::WA_InputMethodEnabled debe establecerse explícitamente (utilizando la función setAttribute()) para poder recibir eventos de método de entrada.

La implementación por defecto llama a event->ignore(), que rechaza el evento Input Method. Consulte la documentación de QInputMethodEvent para más detalles.

Véase también event() y QInputMethodEvent.

[virtual] QVariant QWidget::inputMethodQuery(Qt::InputMethodQuery query) const

Este método sólo es relevante para los widgets de entrada. Es utilizado por el método de entrada para consultar un conjunto de propiedades del widget para poder soportar operaciones complejas del método de entrada como soporte para texto circundante y reconversiones.

query especifica qué propiedad se consulta.

Véase también inputMethodEvent(), QInputMethodEvent, QInputMethodQueryEvent, y inputMethodHints.

void QWidget::insertAction(QAction *before, QAction *action)

Inserta la acción action en la lista de acciones de este widget, antes de la acción before. Añade la acción si before es nullptr o before no es una acción válida para este widget.

Un QWidget sólo debe tener una de cada acción.

Véase también removeAction(), addAction(), QMenu, contextMenuPolicy, y actions().

void QWidget::insertActions(QAction *before, const QList<QAction *> &actions)

Inserta la acción actions en la lista de acciones de este widget, antes de la acción before. Añade la acción si before es nullptr o before no es una acción válida para este widget.

Un QWidget puede tener como máximo una de cada acción.

Véase también removeAction(), QMenu, insertAction(), y contextMenuPolicy.

bool QWidget::isAncestorOf(const QWidget *child) const

Devuelve true si este widget es padre, (o abuelo y así sucesivamente hasta cualquier nivel), del widget dado child, y ambos widgets están dentro de la misma ventana; en caso contrario devuelve false.

bool QWidget::isEnabledTo(const QWidget *ancestor) const

Devuelve true si este widget se habilitaría si ancestor estuviera habilitado; en caso contrario devuelve false.

Este es el caso si ni el propio widget ni ninguno de sus padres hasta pero excluyendo ancestor han sido explícitamente deshabilitados.

isEnabledTo(0) devuelve false si este widget o cualquiera de sus ancestros ha sido desactivado explícitamente.

La palabra antecesor significa un widget padre dentro de la misma ventana.

Por lo tanto isEnabledTo(0) se detiene en la ventana de este widget, a diferencia de isEnabled() que también tiene en cuenta las ventanas padre.

Véase también setEnabled() y enabled.

bool QWidget::isHidden() const

Devuelve true si el widget está oculto, en caso contrario devuelve false.

Un widget oculto sólo se hará visible cuando se llame a show(). No se mostrará automáticamente cuando se muestre el widget padre.

Para comprobar la visibilidad, utilice !isVisible() en su lugar (observe el signo de exclamación).

isHidden() implica !isVisible(), pero un widget puede no ser visible y no estar oculto al mismo tiempo. Este es el caso de los widgets que son hijos de widgets que no son visibles.

Los widgets están ocultos si

  • se crearon como ventanas independientes,
  • se crearon como hijos de widgets visibles,
  • hide() o setVisible(false).

bool QWidget::isVisibleTo(const QWidget *ancestor) const

Devuelve true si este widget se hace visible si se muestra ancestor; en caso contrario devuelve false.

El caso verdadero ocurre si ni el widget mismo ni ningún padre hasta pero excluyendo ancestor ha sido explícitamente ocultado.

Esta función seguirá devolviendo true si el widget está oculto por otras ventanas en la pantalla, pero podría ser físicamente visible si él o ellas se movieran.

isVisibleTo(0) es idéntico a isVisible().

Véase también show(), hide() y isVisible().

bool QWidget::isWindow() const

Devuelve true si el widget es una ventana independiente, en caso contrario devuelve false.

Una ventana es un widget que no es visualmente hijo de ningún otro widget y que suele tener un marco y un window title.

Una ventana puede tener un parent widget. Entonces se agrupará con su padre y se borrará cuando se borre el padre, se minimizará cuando se minimice el padre, etc. Si el gestor de ventanas lo permite, también tendrá una entrada común en la barra de tareas con su ventana principal.

QDialog y QMainWindow son ventanas por defecto, incluso si se especifica un widget padre en el constructor. Este comportamiento se especifica mediante la bandera Qt::Window.

Véase también window(), isModal(), y parentWidget().

[virtual protected] void QWidget::keyPressEvent(QKeyEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de pulsación de teclas para el widget.

Un widget debe llamar a setFocusPolicy() para aceptar el foco inicialmente y tener el foco para recibir un evento de pulsación de tecla.

Si reimplementas este manejador, es muy importante que llames a la implementación de la clase base si no actúas sobre la tecla.

La implementación por defecto cierra los widgets emergentes si el usuario pulsa la secuencia de teclas para QKeySequence::Cancel (normalmente la tecla Escape). En caso contrario, el evento se ignora, para que el padre del widget pueda interpretarlo.

Tenga en cuenta que QKeyEvent comienza con isAccepted() == true, por lo que no necesita llamar a QKeyEvent::accept() - simplemente no llame a la implementación de la clase base si actúa sobre la tecla.

Ver también keyReleaseEvent(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event(), y QKeyEvent.

[virtual protected] void QWidget::keyReleaseEvent(QKeyEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de liberación de teclas para el widget.

Un widget debe accept focus inicialmente y have focus para recibir un evento de liberación de tecla.

Si reimplementas este manejador, es muy importante que llames a la implementación de la clase base si no actúas sobre la tecla.

La implementación por defecto ignora el evento, para que el padre del widget pueda interpretarlo.

Ten en cuenta que QKeyEvent comienza con isAccepted() == true, así que no necesitas llamar a QKeyEvent::accept() - simplemente no llames a la implementación de la clase base si actúas sobre la tecla.

Ver también keyPressEvent(), QEvent::ignore(), setFocusPolicy(), focusInEvent(), focusOutEvent(), event(), y QKeyEvent.

[static] QWidget *QWidget::keyboardGrabber()

Devuelve el widget que está capturando actualmente la entrada del teclado.

Si no hay ningún widget en esta aplicación que esté capturando el teclado, se devuelve nullptr.

Véase también grabMouse() y mouseGrabber().

QLayout *QWidget::layout() const

Devuelve el gestor de diseño que está instalado en este widget, o nullptr si no hay ningún gestor de diseño instalado.

El gestor de diseño establece la geometría de los hijos del widget que se han añadido al diseño.

Véase también setLayout(), sizePolicy() y Gestión de la presentación.

[virtual protected] void QWidget::leaveEvent(QEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de salida del widget que son pasados en el parámetro event.

Un evento leave se envía al widget cuando el cursor del ratón abandona el widget.

Ver también enterEvent(), mouseMoveEvent(), y event().

[slot] void QWidget::lower()

Baja el widget a la parte inferior de la pila del widget padre.

Después de esta llamada, el widget quedará visualmente detrás (y, por tanto, oculto) de cualquier widget hermano superpuesto.

Véase también raise() y stackUnder().

[since 6.0] QPointF QWidget::mapFrom(const QWidget *parent, const QPointF &pos) const

Traduce la coordenada del widget pos desde el sistema de coordenadas de parent al sistema de coordenadas de este widget. El parent no debe ser nullptr y debe ser un padre del widget que llama.

Esta función se introdujo en Qt 6.0.

Ver también mapTo(), mapFromParent(), mapFromGlobal(), y underMouse().

QPoint QWidget::mapFrom(const QWidget *parent, const QPoint &pos) const

Se trata de una función sobrecargada.

[since 6.0] QPointF QWidget::mapFromGlobal(const QPointF &pos) const

Traduce las coordenadas globales de la pantalla pos a coordenadas del widget.

Esta función se introdujo en Qt 6.0.

Véase también mapToGlobal(), mapFrom(), y mapFromParent().

QPoint QWidget::mapFromGlobal(const QPoint &pos) const

Se trata de una función sobrecargada.

[since 6.0] QPointF QWidget::mapFromParent(const QPointF &pos) const

Traduce las coordenadas del widget padre pos a coordenadas del widget.

Igual que mapFromGlobal() si el widget no tiene padre.

Esta función se introdujo en Qt 6.0.

Véase también mapToParent(), mapFrom(), mapFromGlobal(), y underMouse().

QPoint QWidget::mapFromParent(const QPoint &pos) const

Se trata de una función sobrecargada.

[since 6.0] QPointF QWidget::mapTo(const QWidget *parent, const QPointF &pos) const

Traduce la coordenada del widget pos al sistema de coordenadas de parent. parent no debe ser nullptr y debe ser uno de los padres del widget invocador.

Esta función se introdujo en Qt 6.0.

Véase también mapFrom(), mapToParent(), mapToGlobal(), y underMouse().

QPoint QWidget::mapTo(const QWidget *parent, const QPoint &pos) const

Se trata de una función sobrecargada.

[since 6.0] QPointF QWidget::mapToGlobal(const QPointF &pos) const

Traduce las coordenadas del widget pos a coordenadas globales de pantalla. Por ejemplo, mapToGlobal(QPointF(0,0)) daría las coordenadas globales del píxel superior izquierdo del widget.

Esta función se introdujo en Qt 6.0.

Véase también mapFromGlobal(), mapTo(), y mapToParent().

QPoint QWidget::mapToGlobal(const QPoint &pos) const

Se trata de una función sobrecargada.

[since 6.0] QPointF QWidget::mapToParent(const QPointF &pos) const

Traduce la coordenada del widget pos a una coordenada del widget padre.

Igual que mapToGlobal() si el widget no tiene padre.

Esta función se introdujo en Qt 6.0.

Véase también mapFromParent(), mapTo(), mapToGlobal(), y underMouse().

QPoint QWidget::mapToParent(const QPoint &pos) const

Se trata de una función sobrecargada.

QRegion QWidget::mask() const

Devuelve la máscara actualmente establecida en un widget. Si no se ha establecido ninguna máscara, el valor devuelto será una región vacía.

Véase también setMask(), clearMask() y QRegion::isEmpty().

[override virtual protected] int QWidget::metric(QPaintDevice::PaintDeviceMetric m) const

Reimplementa: QPaintDevice::metric(QPaintDevice::PaintDeviceMetric) const.

Implementación interna de la función virtual QPaintDevice::metric().

m es la métrica a obtener.

[virtual protected] void QWidget::mouseDoubleClickEvent(QMouseEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de doble click del ratón para el widget.

La implementación por defecto llama a mousePressEvent().

Nota: El widget también recibirá eventos de pulsación y liberación del ratón además del evento de doble clic. Y si otro widget que se superpone a este widget desaparece en respuesta a eventos de pulsación o liberación, entonces este widget sólo recibirá el evento de doble clic. Depende del desarrollador asegurarse de que la aplicación interpreta estos eventos correctamente.

Ver también mousePressEvent(), mouseReleaseEvent(), mouseMoveEvent(), event(), y QMouseEvent.

[static] QWidget *QWidget::mouseGrabber()

Devuelve el widget que está capturando la entrada del ratón.

Si ningún widget de esta aplicación está capturando el ratón, se devuelve nullptr.

Véase también grabMouse() y keyboardGrabber().

[virtual protected] void QWidget::mouseMoveEvent(QMouseEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de movimiento del ratón para el widget.

Si el seguimiento del ratón está desactivado, los eventos de movimiento del ratón sólo se producen si se pulsa un botón del ratón mientras se mueve el ratón. Si el seguimiento del ratón está activado, los eventos de movimiento del ratón se producen incluso si no se pulsa ningún botón del ratón.

QMouseEvent::position() informa de la posición del cursor del ratón, relativa a este widget. Para los eventos de pulsar y soltar, la posición suele ser la misma que la del último evento de movimiento del ratón, pero puede ser diferente si la mano del usuario tiembla. Esta es una característica del sistema de ventanas subyacente, no de Qt.

Si desea mostrar un tooltip inmediatamente, mientras el ratón se está moviendo (por ejemplo, para obtener las coordenadas del ratón con QMouseEvent::position() y mostrarlas como tooltip), primero debe activar el seguimiento del ratón como se ha descrito anteriormente. Después, para asegurarse de que la información sobre herramientas se actualiza inmediatamente, debe llamar a QToolTip::showText() en lugar de a setToolTip() en su implementación de mouseMoveEvent().

Véase también setMouseTracking(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), event(), QMouseEvent, y Scribble Example.

[virtual protected] void QWidget::mousePressEvent(QMouseEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de pulsación de ratón para el widget.

Si creas nuevos widgets en el evento mousePressEvent() el mouseReleaseEvent() puede no acabar donde esperas, dependiendo del sistema de ventanas subyacente (o del gestor de ventanas X11), de la localización de los widgets y quizás de más cosas.

La implementación por defecto implementa el cierre de los widgets emergentes cuando se pulsa fuera de la ventana. Para otros tipos de widgets no hace nada.

Véase también mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, y Scribble Example.

[virtual protected] void QWidget::mouseReleaseEvent(QMouseEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de liberación del ratón para el widget.

Ver también mousePressEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), event(), QMouseEvent, y Scribble Example.

void QWidget::move(int x, int y)

Esto corresponde a move(QPoint(x, y)).

Nota: Función setter para la propiedad pos.

Se trata de una función sobrecargada.

[virtual protected] void QWidget::moveEvent(QMoveEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de movimiento del widget que se pasan en el parámetro event. Cuando el widget recibe este evento, ya se encuentra en la nueva posición.

La posición anterior es accesible a través de QMoveEvent::oldPos().

Ver también resizeEvent(), event(), move(), y QMoveEvent.

[virtual protected] bool QWidget::nativeEvent(const QByteArray &eventType, void *message, qintptr *result)

Este manejador de eventos especial puede ser reimplementado en una subclase para recibir eventos nativos de la plataforma identificados por eventType que son pasados en el parámetro message.

En su reimplementación de esta función, si desea que Qt deje de manejar el evento, devuelva true y establezca result. El parámetro result sólo tiene sentido en Windows. Si devuelves false, este evento nativo se devuelve a Qt, que traduce el evento a un evento Qt y lo envía al widget.

Nota: Los eventos sólo se envían a este manejador de eventos si el widget tiene un manejador de ventana nativo.

Nota: Esta función superpone las funciones de filtrado de eventos x11Event(), winEvent() y macEvent() de Qt 4.

PlataformaIdentificador de tipo de eventoTipo de mensajeResultado Tipo
Windows"windows_generic_MSG"MSG *LRESULT
macOS"NSEvent"NSEvent *
XCB"xcb_generic_event_t"xcb_generic_event_t *

Véase también QAbstractNativeEventFilter.

QWidget *QWidget::nativeParentWidget() const

Devuelve el padre nativo de este widget, es decir, el siguiente widget ancestro que tiene un identificador de sistema, o nullptr si no tiene ningún padre nativo.

Véase también effectiveWinId().

QWidget *QWidget::nextInFocusChain() const

Devuelve el siguiente widget en la cadena de enfoque de este widget.

Véase también previousInFocusChain().

void QWidget::overrideWindowFlags(Qt::WindowFlags flags)

Establece las banderas de ventana para el widget a flags, sin decírselo al sistema de ventanas.

Advertencia: No llames a esta función a menos que realmente sepas lo que estás haciendo.

Véase también setWindowFlags().

[override virtual] QPaintEngine *QWidget::paintEngine() const

Reimplementa: QPaintDevice::paintEngine() const.

Devuelve el motor de pintura del widget.

Tenga en cuenta que esta función no debe ser llamada explícitamente por el usuario, ya que está pensada sólo para propósitos de reimplementación. La función es llamada por Qt internamente, y la implementación por defecto puede no devolver siempre un puntero válido.

[virtual protected] void QWidget::paintEvent(QPaintEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de pintura pasados en event.

Un evento paint es una petición para repintar todo o parte de un widget. Puede ocurrir por una de las siguientes razones:

  • repaint() o update() fue invocado,
  • el widget estaba oculto y ahora ha sido descubierto, o
  • muchas otras razones.

Muchos widgets pueden simplemente repintar toda su superficie cuando se les pide, pero algunos widgets lentos necesitan optimizar pintando sólo la región solicitada: QPaintEvent::region(). Esta optimización de la velocidad no cambia el resultado, ya que la pintura se recorta a esa región durante el procesamiento de eventos. QListView y QTableView hacen esto, por ejemplo.

Qt también intenta acelerar el pintado combinando varios eventos de pintado en uno. Cuando update() es llamado varias veces o el sistema de ventanas envía varios eventos de pintado, Qt fusiona estos eventos en uno solo con una región mayor (ver QRegion::united()). La función repaint() no permite esta optimización, por lo que sugerimos utilizar update() siempre que sea posible.

Cuando se produce el evento paint, la región de actualización normalmente se ha borrado, por lo que estás pintando sobre el fondo del widget.

El fondo puede establecerse usando setBackgroundRole() y setPalette().

Desde Qt 4.0, QWidget automáticamente hace doble buffer en su pintura, así que no hay necesidad de escribir código de doble buffer en paintEvent() para evitar el parpadeo.

Nota: Generalmente, debería abstenerse de llamar a update() o repaint() dentro de paintEvent(). Por ejemplo, llamar a update() o repaint() en niños dentro de un paintEvent() resulta en un comportamiento indefinido; el niño puede o no recibir un evento paint.

Advertencia: Si está utilizando un motor de pintura personalizado sin el backingstore de Qt, Qt::WA_PaintOnScreen debe estar establecido. De lo contrario, nunca se llamará a QWidget::paintEngine(); en su lugar se utilizará el backingstore.

Ver también event(), repaint(), update(), QPainter, QPixmap, QPaintEvent, y Reloj Analógico.

QWidget *QWidget::parentWidget() const

Devuelve el widget padre de este widget, o nullptr si no tiene ningún widget padre.

QWidget *QWidget::previousInFocusChain() const

La función previousInFocusChain devuelve el widget anterior en la cadena de enfoque de este widget.

Véase también nextInFocusChain().

[slot] void QWidget::raise()

Eleva este widget a la parte superior de la pila del widget padre.

Después de esta llamada el widget estará visualmente delante de cualquier widget hermano superpuesto.

Nota: Cuando utilices activateWindow(), puedes llamar a esta función para asegurarte de que la ventana se apila en la parte superior.

Véase también lower() y stackUnder().

void QWidget::releaseKeyboard()

Libera el teclado.

Véase también grabKeyboard(), grabMouse() y releaseMouse().

void QWidget::releaseMouse()

Libera el agarre del ratón.

Véase también grabMouse(), grabKeyboard() y releaseKeyboard().

void QWidget::releaseShortcut(int id)

Elimina el acceso directo con la dirección id del sistema de accesos directos de Qt. El widget dejará de recibir eventos QEvent::Shortcut para la secuencia de teclas del acceso directo (a menos que tenga otros accesos directos con la misma secuencia de teclas).

Advertencia: Normalmente no deberías necesitar usar esta función ya que el sistema de atajos de Qt elimina los atajos automáticamente cuando se destruye su widget padre. Es mejor usar QAction o QShortcut para manejar los atajos, ya que son más fáciles de usar que esta función de bajo nivel. Tenga en cuenta también que se trata de una operación costosa.

Véase también grabShortcut() y setShortcutEnabled().

void QWidget::removeAction(QAction *action)

Elimina la acción action de la lista de acciones de este widget.

Véase también insertAction() y actions().

void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

Renderiza el sourceRegion de este widget en el target usando renderFlags para determinar cómo renderizar. La renderización comienza en targetOffset en el target. Por ejemplo:

QPixmap pixmap(widget->size());
widget->render(&pixmap);

Si sourceRegion es una región nula, esta función utilizará QWidget::rect() como región, es decir, todo el widget.

Asegúrese de llamar a QPainter::end() para el pintor activo del dispositivo target (si existe) antes de renderizar. Por ejemplo:

QPainter painter(this);
...
painter.end();
myWidget->render(this);

Nota: Para obtener el contenido de un QOpenGLWidget, utilice QOpenGLWidget::grabFramebuffer() en su lugar.

void QWidget::render(QPainter *painter, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), QWidget::RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren))

Renderiza el widget en el painter's QPainter::device().

Las transformaciones y los ajustes aplicados a painter se utilizarán al renderizar.

Nota: painter debe estar activo. En macOS el widget será renderizado en un QPixmap y luego dibujado por el painter.

Esta es una función sobrecargada.

Véase también QPainter::device().

[slot] void QWidget::repaint()

Repinta el widget directamente llamando a paintEvent() inmediatamente, a menos que las actualizaciones estén desactivadas o el widget esté oculto.

Sugerimos utilizar repaint() sólo si necesita un repintado inmediato, por ejemplo durante una animación. En la mayoría de las circunstancias update() es mejor, ya que permite a Qt optimizar la velocidad y minimizar el parpadeo.

Advertencia: Si llamas a repaint() en una función que a su vez puede ser llamada desde paintEvent(), puedes obtener una recursión infinita. La función update() nunca causa recursión.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::repaint));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->repaint(); });
Para más ejemplos y enfoques, véase conectar con ranuras sobrecargadas.

Véase también update(), paintEvent() y setUpdatesEnabled().

void QWidget::repaint(const QRect &rect)

Esta versión repinta un rectángulo rect dentro del widget.

Esta es una función sobrecargada.

void QWidget::repaint(const QRegion &rgn)

Esta versión repinta una región rgn dentro del widget.

Se trata de una función sobrecargada.

void QWidget::repaint(int x, int y, int w, int h)

Esta versión repinta un rectángulo (x, y, w, h) dentro del widget.

Si w es negativo, se sustituye por width() - x, y si h es negativo, se sustituye por height() - y.

Se trata de una función sobrecargada.

void QWidget::resize(int w, int h)

Esto corresponde a resize(QSize(w, h)).

Nota: Función Setter para la propiedad size.

Se trata de una función sobrecargada.

[virtual protected] void QWidget::resizeEvent(QResizeEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de redimensionamiento del widget que se pasan en el parámetro event. Cuando se llama a resizeEvent(), el widget ya tiene su nueva geometría. El tamaño antiguo es accesible a través de QResizeEvent::oldSize().

El widget se borrará y recibirá un evento paint inmediatamente después de procesar el evento resize. No es necesario (ni debería) dibujar dentro de este manejador.

Ver también moveEvent(), event(), resize(), QResizeEvent, paintEvent(), y Scribble Example.

bool QWidget::restoreGeometry(const QByteArray &geometry)

Restaura la geometría y el estado de los widgets de nivel superior almacenados en la matriz de bytes geometry. Devuelve true en caso de éxito; en caso contrario devuelve false.

Si la geometría restaurada está fuera de la pantalla, se modificará para que esté dentro de la geometría de pantalla disponible.

Para restaurar la geometría guardada mediante QSettings, puede utilizar código como éste:

QSettings settings("MyCompany", "MyApp");
myWidget->restoreGeometry(settings.value("myWidget/geometry").toByteArray());

Consulte la documentación Geometría de ventanas para obtener una visión general de los problemas de geometría con ventanas.

Utilice QMainWindow::restoreState() para restaurar la geometría y el estado de las barras de herramientas y los widgets del dock.

Véase también saveGeometry(), QSettings, QMainWindow::saveState(), y QMainWindow::restoreState().

QByteArray QWidget::saveGeometry() const

Guarda la geometría actual y el estado de los widgets de nivel superior.

Para guardar la geometría cuando la ventana se cierra, puedes implementar un evento de cierre como este:

void MyWidget::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    QWidget::closeEvent(event);
}

Consulta la documentación de Geometría de Ventanas para una visión general de los problemas de geometría con ventanas.

Utiliza QMainWindow::saveState() para guardar la geometría y el estado de las barras de herramientas y los widgets del dock.

Véase también restoreGeometry(), QMainWindow::saveState(), y QMainWindow::restoreState().

QScreen *QWidget::screen() const

Devuelve la pantalla en la que se encuentra el widget.

Véase también setScreen() y windowHandle().

void QWidget::scroll(int dx, int dy)

Desplaza el widget incluyendo sus hijos dx píxeles hacia la derecha y dy hacia abajo. Tanto dx como dy pueden ser negativos.

Después del desplazamiento, los widgets recibirán eventos de pintura para las áreas que necesiten ser repintadas. Para los widgets que Qt sabe que son opacos, esto es sólo las partes recién expuestas. Por ejemplo, si un widget opaco se desplaza 8 píxeles a la izquierda, sólo una franja de 8 píxeles de ancho en el borde derecho necesita ser actualizada.

Dado que los widgets propagan el contenido de sus padres por defecto, necesitas establecer la propiedad autoFillBackground, o usar setAttribute() para establecer el atributo Qt::WA_OpaquePaintEvent, para hacer un widget opaco.

Para los widgets que utilizan la propagación de contenidos, un desplazamiento provocará una actualización de toda el área de desplazamiento.

Véase también Transparency and Double Buffering.

void QWidget::scroll(int dx, int dy, const QRect &r)

Esta versión sólo desplaza r y no mueve los hijos del widget.

Si r está vacío o no es válido, el resultado es indefinido.

Esta es una función sobrecargada.

Véase también QScrollArea.

void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)

Establece el atributo attribute en este widget si on es verdadero; en caso contrario, borra el atributo.

Véase también testAttribute().

void QWidget::setBackgroundRole(QPalette::ColorRole role)

Establece el rol de fondo del widget en role.

El rol de fondo define el pincel de palette del widget que se utiliza para representar el fondo.

Si role es QPalette::NoRole, entonces el widget hereda el rol de fondo de su padre.

Tenga en cuenta que los estilos son libres de elegir cualquier color de la paleta. Puedes modificar la paleta o establecer una hoja de estilo si no obtienes el resultado que deseas con setBackgroundRole().

Véase también backgroundRole() y foregroundRole().

void QWidget::setBaseSize(int basew, int baseh)

Esto corresponde a setBaseSize(QSize(basew, baseh)). Establece el tamaño base de los widgets a la anchura basew y la altura baseh.

Nota: Función Setter para la propiedad baseSize.

Esta es una función sobrecargada.

Véase también baseSize().

void QWidget::setContentsMargins(int left, int top, int right, int bottom)

Establece los márgenes alrededor del contenido del widget para que tengan los tamaños left, top, right, y bottom. Los márgenes son utilizados por el sistema de diseño, y pueden ser utilizados por subclases para especificar el área a dibujar (por ejemplo, excluyendo el marco).

Si se cambian los márgenes, se activará resizeEvent().

Véase también contentsRect() y contentsMargins().

void QWidget::setContentsMargins(const QMargins &margins)

La función setContentsMargins establece los márgenes alrededor del contenido del widget.

Establece los márgenes alrededor del contenido del widget para que tengan los tamaños determinados por margins. Los márgenes son utilizados por el sistema de diseño, y pueden ser utilizados por subclases para especificar el área a dibujar (por ejemplo, excluyendo el marco).

Al cambiar los márgenes se activará una función resizeEvent().

Se trata de una función sobrecargada.

Véase también contentsRect() y contentsMargins().

[slot] void QWidget::setDisabled(bool disable)

Desactiva los eventos de entrada del widget si disable es verdadero; en caso contrario, activa los eventos de entrada.

Consulte la documentación de enabled para obtener más información.

Véase también isEnabledTo(), QKeyEvent, QMouseEvent, y changeEvent().

void QWidget::setEditFocus(bool enable)

Si enable es verdadero, hace que este widget tenga el foco de edición, en cuyo caso Qt::Key_Up y Qt::Key_Down se entregarán al widget normalmente; en caso contrario, Qt::Key_Up y Qt::Key_Down se utilizan para cambiar el foco.

Esta característica sólo está disponible en Qt para Embedded Linux.

Ver también hasEditFocus() y QApplication::navigationMode().

void QWidget::setFixedHeight(int h)

Establece las alturas mínima y máxima del widget en h sin cambiar las anchuras. Se proporciona por comodidad.

Véase también sizeHint(), minimumSize(), maximumSize() y setFixedSize().

void QWidget::setFixedSize(const QSize &s)

Establece los tamaños mínimo y máximo del widget en s, impidiendo así que crezca o se reduzca.

Esto anulará las restricciones de tamaño por defecto establecidas por QLayout.

Para eliminar las restricciones, establece el tamaño en QWIDGETSIZE_MAX.

Alternativamente, si desea que el widget tenga un tamaño fijo basado en su contenido, puede llamar a QLayout::setSizeConstraint(QLayout::SetFixedSize);

Véase también maximumSize y minimumSize.

void QWidget::setFixedSize(int w, int h)

Establece la anchura del widget en w y la altura en h.

Se trata de una función sobrecargada.

void QWidget::setFixedWidth(int w)

Establece la anchura mínima y máxima del widget en w sin cambiar las alturas. Se proporciona por comodidad.

Véase también sizeHint(), minimumSize(), maximumSize() y setFixedSize().

void QWidget::setFocus(Qt::FocusReason reason)

Da el foco de entrada de teclado a este widget (o a su proxy de foco) si este widget o uno de sus padres es el active window. El argumento reason se pasará a cualquier evento de foco enviado desde esta función, se usa para dar una explicación de qué causó que el widget obtuviera el foco. Si la ventana no está activa, el widget recibirá el foco cuando la ventana se active.

Primero, se envía un evento focus about to change al widget focus (si lo hay) para decirle que está a punto de perder el foco. Entonces se cambia el foco, se envía un evento de foco fuera al elemento de foco anterior y se envía un evento de foco dentro al nuevo elemento para decirle que acaba de recibir el foco. (No ocurre nada si los widgets focus in y focus out son el mismo).

Nota: En plataformas embebidas, setFocus() no causará que un panel de entrada sea abierto por el método input. Si quieres que esto ocurra, tienes que enviar un evento QEvent::RequestSoftwareInputPanel al widget tú mismo.

setFocus() da el foco a un widget independientemente de su política de foco, pero no borra ninguna captura de teclado (ver grabKeyboard()).

Ten en cuenta que si el widget está oculto, no aceptará el foco hasta que sea mostrado.

Advertencia: Si llamas a setFocus() en una función que a su vez puede ser llamada desde focusOutEvent() o focusInEvent(), puedes obtener una recursión infinita.

Ver también hasFocus(), clearFocus(), focusInEvent(), focusOutEvent(), setFocusPolicy(), focusWidget(), QApplication::focusWidget(), grabKeyboard(), grabMouse(), Enfoque del teclado en widgets, y QEvent::RequestSoftwareInputPanel.

[slot] void QWidget::setFocus()

Da el foco de entrada de teclado a este widget (o a su proxy de foco) si este widget o uno de sus padres es el active window.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::setFocus));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->setFocus(); });
Para ver más ejemplos y enfoques, consulta conectar con ranuras sobrecargadas.

void QWidget::setFocusProxy(QWidget *w)

Establece el proxy de foco del widget en el widget w. Si w es nullptr, la función restablece este widget para que no tenga proxy de foco.

Algunos widgets pueden "tener foco", pero crean un widget hijo, como QLineEdit, para manejar realmente el foco. En este caso, el widget puede establecer que la línea edit sea su proxy de foco.

setFocusProxy() establece el widget que realmente obtendrá el foco cuando "este widget" lo obtenga. Si hay un proxy de foco, setFocus() y hasFocus() operan sobre el proxy de foco. Si "este widget" es el widget de foco, entonces setFocusProxy() mueve el foco al nuevo proxy de foco.

Véase también focusProxy().

void QWidget::setForegroundRole(QPalette::ColorRole role)

Establece el rol de primer plano del widget en role.

El rol de primer plano define el color de palette del widget que se utiliza para dibujar el primer plano.

Si role es QPalette::NoRole, el widget utiliza un rol de primer plano que contrasta con el rol de fondo.

Tenga en cuenta que los estilos son libres de elegir cualquier color de la paleta. Puede modificar la paleta o establecer una hoja de estilo si no consigue el resultado que desea con setForegroundRole().

Véase también foregroundRole() y backgroundRole().

void QWidget::setGeometry(int x, int y, int w, int h)

Corresponde a setGeometry(QRect(x, y, w, h)).

Nota: Función setter para la propiedad geometry.

Se trata de una función sobrecargada.

Véase también geometry().

void QWidget::setGraphicsEffect(QGraphicsEffect *effect)

La función setGraphicsEffect sirve para establecer el efecto gráfico del widget.

Establece effect como efecto del widget. Si ya hay un efecto instalado en este widget, QWidget borrará el efecto existente antes de instalar el nuevo effect.

Si effect es el efecto instalado en un widget diferente, setGraphicsEffect() eliminará el efecto del widget y lo instalará en este widget.

QWidget toma posesión de effect.

Nota: Esta función aplicará el efecto sobre sí misma y sobre todos sus hijos.

Nota: Los efectos gráficos no son compatibles con los widgets basados en OpenGL, como QGLWidget, QOpenGLWidget y QQuickWidget.

Véase también graphicsEffect().

[slot] void QWidget::setHidden(bool hidden)

Función de conveniencia, equivalente a setVisible(!hidden).

Véase también isHidden().

void QWidget::setLayout(QLayout *layout)

Establece el gestor de diseño para este widget en layout.

Si ya hay un gestor de diseño instalado en este widget, QWidget no te permitirá instalar otro. Primero debes borrar el gestor de diseño existente (devuelto por layout()) antes de poder llamar a setLayout() con el nuevo diseño.

Si layout es el gestor de diseño de un widget diferente, setLayout() reparentará el diseño y lo convertirá en el gestor de diseño de este widget.

Ejemplo:

QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(formWidget);
formWidget->setLayout(layout);

Una alternativa a llamar a esta función es pasar este widget al constructor del layout.

El QWidget tomará la propiedad de layout.

Véase también layout() y Gestión de la presentación.

void QWidget::setMask(const QBitmap &bitmap)

Hace que sólo sean visibles los píxeles del widget para los que bitmap tiene un bit 1 correspondiente. Si la región incluye píxeles fuera de rect() del widget, los controles del sistema de ventanas en esa área pueden o no ser visibles, dependiendo de la plataforma.

Tenga en cuenta que este efecto puede ser lento si la región es particularmente compleja.

El siguiente código muestra cómo se puede utilizar una imagen con un canal alfa para generar una máscara para un widget:

QLabel topLevelLabel;
QPixmap pixmap(":/images/tux.png");
topLevelLabel.setPixmap(pixmap);
topLevelLabel.setMask(pixmap.mask());

La etiqueta mostrada por este código es enmascarada usando la imagen que contiene, dando la apariencia de que una imagen de forma irregular está siendo dibujada directamente en la pantalla.

Los widgets enmascarados sólo reciben eventos del ratón en sus partes visibles.

Véase también mask(), clearMask(), y windowOpacity().

void QWidget::setMask(const QRegion &region)

Hace que sólo sean visibles las partes del widget que se solapan con region. Si la región incluye píxeles fuera de rect() del widget, los controles del sistema de ventanas en esa área pueden o no ser visibles, dependiendo de la plataforma.

Dado que QRegion permite crear regiones arbitrariamente complejas, las máscaras de widget pueden adaptarse a las ventanas con formas menos convencionales, e incluso permitir que los widgets se muestren con agujeros. Tenga en cuenta que este efecto puede ser lento si la región es particularmente compleja.

Las máscaras de widget se utilizan para indicar al sistema de ventanas que la aplicación no desea eventos de ratón para áreas fuera de la máscara. En la mayoría de los sistemas, también producen un recorte visual grueso. Para obtener bordes de ventana suaves, utilice en su lugar fondo translúcido y pintura anti-aliasing, como se muestra en el ejemplo Fondo translúcido.

Se trata de una función sobrecargada.

Véase también windowOpacity.

void QWidget::setMaximumSize(int maxw, int maxh)

Esta función corresponde a setMaximumSize(QSize(maxw, maxh)). Establece la anchura máxima en maxw y la altura máxima en maxh.

Nota: Función Setter para la propiedad maximumSize.

Se trata de una función sobrecargada.

Véase también maximumSize().

void QWidget::setMinimumSize(int minw, int minh)

Esta función corresponde a setMinimumSize(QSize(minw, minh)). Establece la anchura mínima en minw y la altura mínima en minh.

Nota: Función Setter para la propiedad minimumSize.

Se trata de una función sobrecargada.

Véase también minimumSize().

void QWidget::setParent(QWidget *parent)

Establece el padre del widget en parent, y restablece los indicadores de la ventana. El widget se mueve a la posición (0, 0) en su nuevo padre.

Si el nuevo widget padre está en una ventana diferente, el widget reparentado y sus hijos se añaden al final de tab chain del nuevo widget padre, en el mismo orden interno que antes. Si uno de los widgets movidos tenía el foco del teclado, setParent() llama a clearFocus() para ese widget.

Si el nuevo widget padre está en la misma ventana que el padre anterior, establecer el padre no cambia el orden de las pestañas o el foco del teclado.

Si el "nuevo" widget padre es el antiguo widget padre, esta función no hace nada.

Nota: El widget se vuelve invisible al cambiar su padre, incluso si antes era visible. Debes llamar a show() para que el widget vuelva a ser visible.

Advertencia: Es muy poco probable que necesites esta función. Si tienes un widget que cambia su contenido dinámicamente, es mucho más fácil usar QStackedWidget.

Véase también setWindowFlags().

void QWidget::setParent(QWidget *parent, Qt::WindowFlags f)

Esta función también toma como argumento widget flags, f.

Se trata de una función sobrecargada.

void QWidget::setScreen(QScreen *screen)

Establece la pantalla en la que debe mostrarse el widget en screen.

Establecer la pantalla sólo tiene sentido para las ventanas. Si es necesario, la ventana del widget se volverá a crear en screen.

Nota: Si la pantalla forma parte de un escritorio virtual de múltiples pantallas, la ventana no se moverá automáticamente a screen. Para situar la ventana con respecto a la pantalla, utiliza la posición topLeft() de la pantalla.

Véase también screen() y QWindow::setScreen().

void QWidget::setShortcutAutoRepeat(int id, bool enable = true)

Si enable es verdadero, se activa la repetición automática del acceso directo con el id dado; en caso contrario, se desactiva.

Véase también grabShortcut() y releaseShortcut().

void QWidget::setShortcutEnabled(int id, bool enable = true)

Si enable es verdadero, se activa el acceso directo con el id dado; en caso contrario, el acceso directo se desactiva.

Advertencia: Normalmente no debería necesitar usar esta función ya que el sistema de atajos de Qt habilita/deshabilita los atajos automáticamente a medida que los widgets se ocultan/visibilizan y ganan o pierden foco. Es mejor usar QAction o QShortcut para manejar los atajos, ya que son más fáciles de usar que esta función de bajo nivel.

Véase también grabShortcut() y releaseShortcut().

void QWidget::setSizeIncrement(int w, int h)

Establece el incremento de tamaño x (anchura) en w y el incremento de tamaño y (altura) en h.

Nota: Función Setter para la propiedad sizeIncrement.

Esta es una función sobrecargada.

Véase también sizeIncrement().

void QWidget::setSizePolicy(QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)

Establece la política de tamaño del widget en horizontal y vertical, con estiramiento estándar y sin altura por anchura.

Nota: Función Setter para la propiedad sizePolicy.

Esta es una función sobrecargada.

Véase también sizePolicy() y QSizePolicy::QSizePolicy().

void QWidget::setStyle(QStyle *style)

Establece el estilo GUI del widget en style. La propiedad del objeto estilo no se transfiere.

Si no se establece ningún estilo, el widget utiliza el estilo de la aplicación, QApplication::style() en su lugar.

Establecer el estilo de un widget no afecta a los widgets hijos existentes o futuros.

Advertencia: Esta función es particularmente útil para propósitos de demostración, donde quieres mostrar las capacidades de estilo de Qt. Las aplicaciones reales deberían evitarla y usar en su lugar un estilo GUI consistente.

Advertencia: Las hojas de estilo de Qt no están soportadas actualmente para las subclases personalizadas de QStyle. Planeamos solucionar esto en una futura versión.

Ver también style(), QStyle, QApplication::style(), y QApplication::setStyle().

[static] void QWidget::setTabOrder(QWidget *first, QWidget *second)

Coloca el widget second después del widget first en el orden de foco.

De hecho, elimina el widget second de su cadena de enfoque y lo inserta después del widget first.

Tenga en cuenta que, dado que se cambia el orden de tabulación del widget second, debe ordenar la cadena así:

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

no así:

// WRONG
setTabOrder(c, d); // c to d
setTabOrder(a, b); // a to b AND c to d
setTabOrder(b, c); // a to b to c, but not c to d

Si first o second tiene un proxy de foco, setTabOrder() sustituye correctamente al proxy.

Nota: Desde Qt 5.10: Un widget que tiene un hijo como proxy de foco se entiende como un widget compuesto. Al establecer un orden de tabulación entre uno o dos widgets compuestos, se preservará el orden de tabulación local dentro de cada uno. Esto significa que si ambos widgets son widgets compuestos, el orden de tabulación resultante será desde el último hijo dentro de first, hasta el primer hijo dentro de second.

Véase también setFocusPolicy(), setFocusProxy(), y Enfoque de teclado en widgets.

[static, since 6.6] void QWidget::setTabOrder(std::initializer_list<QWidget *> widgets)

Establece el orden de tabulación para los widgets en la lista widgets llamando a QWidget::setTabOrder(QWidget *, QWidget *) para cada par consecutivo de widgets.

En lugar de establecer cada par manualmente de esta manera:

setTabOrder(a, b); // a to b
setTabOrder(b, c); // a to b to c
setTabOrder(c, d); // a to b to c to d

puedes llamar:

setTabOrder({a, b, c, d}); // a to b to c to d

La llamada no crea un bucle cerrado de enfoque de pestaña. Si hay más widgets con la política de foco Qt::TabFocus, al tabular en d se moverá el foco a uno de esos widgets, no de vuelta a a.

Esta es una función sobrecargada.

Esta función se introdujo en Qt 6.6.

Ver también setFocusPolicy(), setFocusProxy(), y Enfoque de Teclado en Widgets.

void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)

Establece la bandera de ventana flag en este widget si on es verdadero; en caso contrario borra la bandera.

Nota: Esta función llama a setParent() cuando se cambian las banderas de una ventana, haciendo que el widget se oculte. Debes llamar a show() para que el widget vuelva a ser visible.

Véase también setWindowFlags(), windowFlags(), y windowType().

void QWidget::setWindowRole(const QString &role)

Establece el rol de la ventana a role. Esto sólo tiene sentido para ventanas en X11.

Véase también windowRole().

void QWidget::setWindowState(Qt::WindowStates windowState)

Establece el estado de la ventana en windowState. El estado de la ventana es una combinación OR'ed de Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen, y Qt::WindowActive.

Si la ventana no es visible (es decir, isVisible() devuelve false), el estado de la ventana tendrá efecto cuando se llame a show(). Para las ventanas visibles, el cambio es inmediato. Por ejemplo, para alternar entre pantalla completa y modo normal, utilice el siguiente código:

w->setWindowState(w->windowState() ^ Qt::WindowFullScreen);

Para restaurar y activar una ventana minimizada (conservando su estado maximizado y/o de pantalla completa), utilice lo siguiente:

w->setWindowState((w->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);

Al llamar a esta función se ocultará el widget. Debe llamar a show() para que el widget vuelva a ser visible.

Nota: En algunos sistemas de ventanas Qt::WindowActive no es inmediato, y puede ser ignorado en ciertos casos.

Cuando el estado de la ventana cambia, el widget recibe un changeEvent() de tipo QEvent::WindowStateChange.

Véase también Qt::WindowState y windowState().

void QWidget::setupUi(QWidget *widget)

Configura la interfaz de usuario para el widget especificado.

Nota: Esta función está disponible con widgets que derivan de descripciones de interfaz de usuario creadas con uic.

Véase también Uso de un archivo de interfaz de usuario de Designer en la aplicación.

[slot] void QWidget::show()

Muestra el widget y sus widgets hijos.

Para las ventanas hijas, esto equivale a llamar a setVisible(true). En caso contrario, equivale a llamar a showFullScreen(), showMaximized(), o setVisible(true), dependiendo del comportamiento por defecto de la plataforma para las banderas de ventana.

Véase también raise(), showEvent(), hide(), setVisible(), showMinimized(), showMaximized(), showNormal(), isVisible(), y windowFlags().

[virtual protected] void QWidget::showEvent(QShowEvent *event)

Este manejador de eventos puede ser reimplementado en una subclase para recibir eventos de mostrar widgets que son pasados en el parámetro event.

Los eventos show no espontáneos se envían a los widgets inmediatamente antes de que se muestren. Los eventos show espontáneos de ventanas se envían después.

Nota: Un widget recibe eventos show y hide espontáneos cuando su estado de asignación es cambiado por el sistema de ventanas, por ejemplo, un evento hide espontáneo cuando el usuario minimiza la ventana, y un evento show espontáneo cuando la ventana es restaurada de nuevo. Tras recibir un evento de ocultación espontánea, un widget sigue considerándose visible en el sentido de isVisible().

Véase también visible, event(), y QShowEvent.

[slot] void QWidget::showFullScreen()

Muestra el widget en modo de pantalla completa.

Llamar a esta función sólo afecta a windows.

Para volver del modo de pantalla completa, llame a showNormal() o close().

Nota: El modo de pantalla completa funciona bien bajo Windows, pero tiene ciertos problemas bajo X. Estos problemas se deben a limitaciones del protocolo ICCCM que especifica la comunicación entre los clientes X11 y el gestor de ventanas. ICCCM simplemente no entiende el concepto de ventanas a pantalla completa no decoradas. Por lo tanto, lo mejor que puede hacer es solicitar una ventana sin bordes y colocarla y redimensionarla para que ocupe toda la pantalla. Dependiendo del gestor de ventanas, esto puede o no funcionar. La ventana sin bordes se solicita utilizando sugerencias MOTIF, que son soportadas al menos parcialmente por prácticamente todos los gestores de ventanas modernos.

Una alternativa sería saltarse el gestor de ventanas por completo y crear una ventana con la bandera Qt::X11BypassWindowManagerHint. Sin embargo, esto tiene otros problemas graves, como el foco de teclado roto y efectos muy extraños en los cambios de escritorio o cuando el usuario levanta otras ventanas.

Los gestores de ventanas X11 que siguen las especificaciones modernas post-ICCCM soportan correctamente el modo de pantalla completa.

En macOS, mostrar una ventana a pantalla completa pone toda la aplicación en modo pantalla completa, proporcionándole un escritorio dedicado. Si se muestra otra ventana mientras la aplicación se ejecuta en modo de pantalla completa, es posible que esa ventana también se convierta automáticamente en pantalla completa. Para evitarlo, salga del modo de pantalla completa llamando a showNormal() o mediante close() en la ventana de pantalla completa antes de mostrar otra ventana.

Véase también showNormal(), showMaximized(), show(), isVisible() y close().

[slot] void QWidget::showMaximized()

Muestra el widget maximizado.

Llamar a esta función sólo afecta a windows.

En X11, esta función puede no funcionar correctamente con ciertos gestores de ventanas. Consulte la documentación de Geometría de Ventanas para una explicación.

Ver también setWindowState(), showNormal(), showMinimized(), show(), hide(), y isVisible().

[slot] void QWidget::showMinimized()

Muestra el widget minimizado, como un icono.

Llamar a esta función sólo afecta a windows.

Ver también showNormal(), showMaximized(), show(), hide(), isVisible(), y isMinimized().

[slot] void QWidget::showNormal()

Restaura el widget después de haber sido maximizado o minimizado.

La llamada a esta función sólo afecta a windows.

Véase también setWindowState(), showMinimized(), showMaximized(), show(), hide(), y isVisible().

void QWidget::stackUnder(QWidget *w)

Coloca el widget debajo de w en la pila del widget padre.

Para que esto funcione, el propio widget y w deben ser hermanos.

Véase también raise() y lower().

QStyle *QWidget::style() const

Véase también QWidget::setStyle(), QApplication::setStyle() y QApplication::style().

[virtual protected] void QWidget::tabletEvent(QTabletEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de tableta para el widget.

Si reimplementas este manejador, es muy importante que ignore() el evento si no lo maneja, para que el padre del widget pueda interpretarlo.

La implementación por defecto ignora el evento.

Si el seguimiento de la tableta está desactivado, los eventos de movimiento de la tableta sólo se producen si el lápiz está en contacto con la tableta, o al menos un botón del lápiz está pulsado, mientras el lápiz se está moviendo. Si el seguimiento de la tableta está activado, los eventos de movimiento de la tableta se producen incluso cuando el lápiz está cerca de la tableta, sin pulsar ningún botón.

Véase también QEvent::ignore(), QEvent::accept(), event(), setTabletTracking(), y QTabletEvent.

bool QWidget::testAttribute(Qt::WidgetAttribute attribute) const

Devuelve true si el atributo attribute está establecido en este widget; en caso contrario devuelve false.

Véase también setAttribute().

bool QWidget::underMouse() const

Devuelve true si el widget está bajo el cursor del ratón; en caso contrario devuelve false.

Este valor no se actualiza correctamente durante las operaciones de arrastrar y soltar.

Véase también enterEvent() y leaveEvent().

void QWidget::ungrabGesture(Qt::GestureType gesture)

Da de baja el widget de un determinado tipo gesture

Véase también grabGesture() y QGestureEvent.

[slot] void QWidget::update()

Actualiza el widget a menos que las actualizaciones estén desactivadas o el widget esté oculto.

Esta función no provoca un repintado inmediato, sino que programa un evento de pintura para que se procese cuando Qt vuelva al bucle de eventos principal. Esto permite a Qt optimizar para más velocidad y menos parpadeo que una llamada a repaint().

Llamar a update() varias veces normalmente resulta en una sola llamada a paintEvent().

Qt normalmente borra el área del widget antes de la llamada a paintEvent(). Si se establece el atributo widget Qt::WA_OpaquePaintEvent, el widget es responsable de pintar todos sus píxeles con un color opaco.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        widget, qOverload<>(&QWidget::update));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        widget, [receiver = widget]() { receiver->update(); });
Para más ejemplos y enfoques, véase conectar con ranuras sobrecargadas.

Véase también repaint(), paintEvent(), setUpdatesEnabled() y Reloj analógico.

void QWidget::update(const QRect &rect)

Esta versión actualiza un rectángulo rect dentro del widget.

Esta es una función sobrecargada.

void QWidget::update(const QRegion &rgn)

Esta versión repinta una región rgn dentro del widget.

Se trata de una función sobrecargada.

void QWidget::update(int x, int y, int w, int h)

Esta versión actualiza un rectángulo (x, y, w, h) dentro del widget.

Esta es una función sobrecargada.

void QWidget::updateGeometry()

Notifica al sistema de maquetación que este widget ha cambiado y puede necesitar cambiar de geometría.

Llame a esta función si sizeHint() o sizePolicy() han cambiado.

Para widgets explícitamente ocultos, updateGeometry() no es necesaria. El sistema de diseño será notificado tan pronto como se muestre el widget.

[protected slot] void QWidget::updateMicroFocus(Qt::InputMethodQuery query = Qt::ImQueryAll)

Actualiza el microfoco del widget e informa a los métodos de entrada de que el estado especificado por query ha cambiado.

QRegion QWidget::visibleRegion() const

Devuelve la región no oscurecida en la que pueden producirse eventos de pintura.

Para los widgets visibles, es una aproximación del área no cubierta por otros widgets; en caso contrario, es una región vacía.

La función repaint() llama a esta función si es necesario, por lo que en general no es necesario llamarla.

[virtual protected] void QWidget::wheelEvent(QWheelEvent *event)

Este manejador de eventos, para el evento event, puede ser reimplementado en una subclase para recibir eventos de rueda para el widget.

Si reimplementas este manejador, es muy importante que ignore() el evento si no lo maneja, para que el padre del widget pueda interpretarlo.

La implementación por defecto ignora el evento.

Ver también QEvent::ignore(), QEvent::accept(), event(), y QWheelEvent.

WId QWidget::winId() const

Devuelve el identificador del sistema de ventanas del widget.

Portable en principio, pero si lo usas probablemente estés a punto de hacer algo no portable. Tenga cuidado.

Si un widget no es nativo (alien) y se invoca winId() sobre él, se le proporcionará un handle nativo.

Este valor puede cambiar en tiempo de ejecución. Se enviará un evento de tipo QEvent::WinIdChange al widget tras un cambio en el identificador del sistema de ventanas.

Véase también find().

QWidget *QWidget::window() const

Devuelve la ventana para este widget, es decir, el siguiente widget ancestro que tiene (o podría tener) un marco del sistema de ventanas.

Si el widget es una ventana, se devuelve el propio widget.

El uso típico es cambiar el título de la ventana:

aWidget->window()->setWindowTitle("New Window Title");

Véase también isWindow().

QWindow *QWidget::windowHandle() const

Si se trata de un widget nativo, devuelve el asociado QWindow. En caso contrario, devuelve null.

Los widgets nativos incluyen widgets de nivel superior, QGLWidget y widgets hijos sobre los que se haya llamado a winId().

Véase también winId() y screen().

[signal] void QWidget::windowIconChanged(const QIcon &icon)

Esta señal se emite cuando el icono de la ventana ha cambiado, con el nuevo icon como argumento.

Nota: Señal notificadora para la propiedad windowIcon.

QString QWidget::windowRole() const

Devuelve el rol de la ventana, o una cadena vacía.

Véase también setWindowRole(), windowIcon, y windowTitle.

Qt::WindowStates QWidget::windowState() const

Devuelve el estado actual de la ventana. El estado de la ventana es una combinación OR'ed de Qt::WindowState: Qt::WindowMinimized, Qt::WindowMaximized, Qt::WindowFullScreen, y Qt::WindowActive.

Véase también Qt::WindowState y setWindowState().

[signal] void QWidget::windowTitleChanged(const QString &title)

Esta señal se emite cuando el título de la ventana ha cambiado, con el nuevo title como argumento.

Nota: Señal notificadora para la propiedad windowTitle.

Qt::WindowType QWidget::windowType() const

Devuelve el tipo de ventana de este widget. Esto es idéntico a windowFlags() & Qt::WindowType_Mask.

Véase también windowFlags.

Documentación de macros

QWIDGETSIZE_MAX

Define el tamaño máximo de un objeto QWidget.

El mayor tamaño permitido para un widget es QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX), es decir, QSize (16777215,16777215).

Véase también QWidget::setMaximumSize().

© 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.