En esta página

QMainWindow Class

La clase QMainWindow proporciona una ventana principal de la aplicación. Más...

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

Tipos públicos

enum DockOption { AnimatedDocks, AllowNestedDocks, AllowTabbedDocks, ForceTabbedDocks, VerticalTabs, GroupedDragging }
flags DockOptions

Propiedades

Funciones públicas

QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags())
virtual ~QMainWindow()
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation)
void addToolBar(Qt::ToolBarArea area, QToolBar *toolbar)
void addToolBar(QToolBar *toolbar)
QToolBar *addToolBar(const QString &title)
void addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea)
QWidget *centralWidget() const
Qt::DockWidgetArea corner(Qt::Corner corner) const
virtual QMenu *createPopupMenu()
QMainWindow::DockOptions dockOptions() const
Qt::DockWidgetArea dockWidgetArea(QDockWidget *dockwidget) const
bool documentMode() const
QSize iconSize() const
void insertToolBar(QToolBar *before, QToolBar *toolbar)
void insertToolBarBreak(QToolBar *before)
bool isAnimated() const
bool isDockNestingEnabled() const
QMenuBar *menuBar() const
QWidget *menuWidget() const
void removeDockWidget(QDockWidget *dockwidget)
void removeToolBar(QToolBar *toolbar)
void removeToolBarBreak(QToolBar *before)
void resizeDocks(const QList<QDockWidget *> &docks, const QList<int> &sizes, Qt::Orientation orientation)
bool restoreDockWidget(QDockWidget *dockwidget)
bool restoreState(const QByteArray &state, int version = 0)
QByteArray saveState(int version = 0) const
void setCentralWidget(QWidget *widget)
void setCorner(Qt::Corner corner, Qt::DockWidgetArea area)
void setDockOptions(QMainWindow::DockOptions options)
void setDocumentMode(bool enabled)
void setIconSize(const QSize &iconSize)
void setMenuBar(QMenuBar *menuBar)
void setMenuWidget(QWidget *menuBar)
void setStatusBar(QStatusBar *statusbar)
void setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)
void setTabShape(QTabWidget::TabShape tabShape)
void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle)
void splitDockWidget(QDockWidget *first, QDockWidget *second, Qt::Orientation orientation)
QStatusBar *statusBar() const
QTabWidget::TabPosition tabPosition(Qt::DockWidgetArea area) const
QTabWidget::TabShape tabShape() const
QList<QDockWidget *> tabifiedDockWidgets(QDockWidget *dockwidget) const
void tabifyDockWidget(QDockWidget *first, QDockWidget *second)
QWidget *takeCentralWidget()
Qt::ToolBarArea toolBarArea(const QToolBar *toolbar) const
bool toolBarBreak(QToolBar *toolbar) const
Qt::ToolButtonStyle toolButtonStyle() const
bool unifiedTitleAndToolBarOnMac() const

Ranuras públicas

void setAnimated(bool enabled)
void setDockNestingEnabled(bool enabled)
void setUnifiedTitleAndToolBarOnMac(bool set)

Señales

void iconSizeChanged(const QSize &iconSize)
void tabifiedDockWidgetActivated(QDockWidget *dockWidget)
void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle)

Funciones protegidas reimplementadas

virtual void contextMenuEvent(QContextMenuEvent *event) override
virtual bool event(QEvent *event) override

Descripción detallada

Marco de trabajo de la ventana principal de Qt

Una ventana principal proporciona un marco para construir la interfaz de usuario de una aplicación. Qt tiene QMainWindow y sus clases relacionadas para la gestión de la ventana principal. QMainWindow tiene su propio layout al que puedes añadir QToolBars, QDockWidgets, un QMenuBar, y un QStatusBar. El layout tiene un área central que puede ser ocupada por cualquier tipo de widget. Puedes ver una imagen del layout a continuación.

Diagrama de la ventana principal y posición de sus componentes

Creación de componentes de la ventana principal

El widget central suele ser un widget estándar de Qt, como QTextEdit o QGraphicsView. También se pueden utilizar widgets personalizados para aplicaciones avanzadas. El widget central se configura con setCentralWidget().

Las ventanas principales tienen una interfaz de documento único (SDI) o múltiple (MDI). Puedes crear aplicaciones MDI en Qt usando un QMdiArea como widget central.

Ahora examinaremos cada uno de los otros widgets que pueden añadirse a una ventana principal. Daremos ejemplos de cómo crearlos y añadirlos.

Creación de menús

Qt implementa menús en QMenu y QMainWindow los guarda en un QMenuBar. QActions se añaden a los menús, que los muestran como elementos de menú.

Puedes añadir nuevos menús a la barra de menús de la ventana principal llamando a menuBar(), que devuelve el QMenuBar de la ventana, y luego añadir un menú con QMenuBar::addMenu().

QMainWindow viene con una barra de menús predeterminada, pero también puede configurar una usted mismo con setMenuBar(). Si desea implementar una barra de menús personalizada (es decir, no utilizar el widget QMenuBar ), puede configurarla con setMenuWidget().

A continuación se muestra un ejemplo de cómo crear menús:

    void MainWindow::createMenus()
    {
        fileMenu = menuBar()->addMenu(tr("&File"));
        fileMenu->addAction(newAct);
        fileMenu->addAction(openAct);
        fileMenu->addAction(saveAct);

La función createPopupMenu() crea menús emergentes cuando la ventana principal recibe eventos de menú contextual. La implementación por defecto genera un menú con las acciones comprobables de los widgets del dock y las barras de herramientas. Puede reimplementar createPopupMenu() para obtener un menú personalizado.

Creación de barras de herramientas

Las barras de herramientas se implementan en la clase QToolBar. Puede añadir una barra de herramientas a una ventana principal con addToolBar().

Puede controlar la posición inicial de las barras de herramientas asignándolas a un Qt::ToolBarArea específico. Puede dividir un área insertando un salto de barra de herramientas -piense en esto como un salto de línea en la edición de texto- con addToolBarBreak() o insertToolBarBreak(). También puede restringir la colocación por parte del usuario con QToolBar::setAllowedAreas() y QToolBar::setMovable().

El tamaño de los iconos de la barra de herramientas puede obtenerse con iconSize(). Los tamaños dependen de la plataforma; puede establecer un tamaño fijo con setIconSize(). Puede alterar la apariencia de todos los botones de las barras de herramientas con setToolButtonStyle().

A continuación se muestra un ejemplo de creación de barras de herramientas:

    void MainWindow::createToolBars()
    {
        fileToolBar = addToolBar(tr("File"));
        fileToolBar->addAction(newAct);

Creación de widgets de muelle

Los widgets de acoplamiento se implementan en la clase QDockWidget. Un widget acoplable es una ventana que puede acoplarse a la ventana principal. Los widgets dock se añaden a una ventana principal con addDockWidget().

Existen cuatro áreas para los widgets dock, tal y como se indica en el enum Qt::DockWidgetArea: izquierda, derecha, superior e inferior. Puede especificar qué área de widget de acoplamiento debe ocupar las esquinas donde se solapan las áreas con setCorner(). Por defecto, cada área sólo puede contener una fila (vertical u horizontal) de widgets dock, pero si habilitas el anidamiento con setDockNestingEnabled(), los widgets dock pueden añadirse en cualquier dirección.

También se pueden apilar dos widgets dock uno encima del otro. A continuación, se utiliza QTabBar para seleccionar cuál de los widgets debe mostrarse.

Damos un ejemplo de cómo crear y añadir widgets dock a una ventana principal:

QDockWidget *dockWidget = new QDockWidget(tr("Dock Widget"), this);
dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea |
                            Qt::RightDockWidgetArea);
dockWidget->setWidget(dockWidgetContents);
addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

La barra de estado

Puede establecer una barra de estado con setStatusBar(), pero se crea una la primera vez que se llama a statusBar() (que devuelve la barra de estado de la ventana principal). Consulte QStatusBar para obtener información sobre cómo utilizarla.

Almacenando Estado

QMainWindow puede almacenar el estado de su layout con saveState(); más tarde puede ser recuperado con restoreState(). Lo que se almacena es la posición y el tamaño (relativo al tamaño de la ventana principal) de las barras de herramientas y los widgets del dock.

Ver también QMenuBar, QToolBar, QStatusBar, QDockWidget, y Ejemplo de Menús.

Documentación de tipos de miembros

enum QMainWindow::DockOption
flags QMainWindow::DockOptions

Este enum contiene banderas que especifican el comportamiento de acoplamiento de QMainWindow.

ConstanteValorDescripción
QMainWindow::AnimatedDocks0x01Idéntica a la propiedad animated.
QMainWindow::AllowNestedDocks0x02Idéntica a la propiedad dockNestingEnabled.
QMainWindow::AllowTabbedDocks0x04El usuario puede colocar un widget dock "encima" de otro. Los dos widgets se apilan y aparece una barra de pestañas para seleccionar cuál es visible.
QMainWindow::ForceTabbedDocks0x08Cada área dock contiene una única pila de widgets dock con pestañas. En otras palabras, los widgets acoplables no pueden colocarse uno junto a otro en un área acoplable. Si esta opción está activada, AllowNestedDocks no tiene ningún efecto.
QMainWindow::VerticalTabs0x10Las dos áreas acoplables verticales a los lados de la ventana principal muestran sus pestañas verticalmente. Si esta opción no está activada, todas las áreas acoplables muestran sus pestañas en la parte inferior. Implica AllowTabbedDocks. Véase también setTabPosition().
QMainWindow::GroupedDragging0x20Al arrastrar la barra de título de un dock, se arrastrarán todas las pestañas que estén tabuladas con él. Implica AllowTabbedDocks. No funciona bien si algunos QDockWidgets tienen restricciones en que área están permitidos. (Este valor enum se añadió en Qt 5.6.)

Estas opciones sólo controlan cómo se pueden colocar los widgets del dock en QMainWindow. No reorganizan los widgets del dock para que se ajusten a las opciones especificadas. Por esta razón, deberían establecerse antes de añadir ningún widget a la ventana principal. Las excepciones son las opciones AnimatedDocks y VerticalTabs, que pueden establecerse en cualquier momento.

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

Documentación de Propiedades

animated : bool

Esta propiedad indica si la manipulación de los widgets del dock y las barras de herramientas está animada

Cuando se arrastra un widget acoplable o una barra de herramientas sobre la ventana principal, la ventana principal ajusta su contenido para indicar dónde se acoplará el widget acoplable o la barra de herramientas si se suelta. Establecer esta propiedad hace que QMainWindow mueva su contenido en una animación suave. Borrar esta propiedad hace que el contenido se ajuste a su nueva posición.

Por defecto, esta propiedad está activada. Puede desactivarse si la ventana principal contiene widgets que tardan en cambiar de tamaño o repintarse.

Establecer esta propiedad es idéntico a establecer la opción AnimatedDocks utilizando setDockOptions().

Funciones de acceso:

bool isAnimated() const
void setAnimated(bool enabled)

dockNestingEnabled : bool

Esta propiedad indica si los muelles pueden anidarse.

Si esta propiedad es false, las áreas dock sólo pueden contener una única fila (horizontal o vertical) de widgets dock. Si esta propiedad es true, el área ocupada por un widget de dock puede dividirse en cualquier dirección para contener más widgets de dock.

El anidamiento de docks sólo es necesario en aplicaciones que contienen muchos widgets dock. Ofrece al usuario una mayor libertad a la hora de organizar su ventana principal. Sin embargo, el anidamiento de docks conduce a un comportamiento más complejo (y menos intuitivo) cuando un widget dock se arrastra sobre la ventana principal, ya que hay más formas en las que un widget dock soltado puede colocarse en el área del dock.

Establecer esta propiedad es idéntico a establecer la opción AllowNestedDocks utilizando setDockOptions().

Funciones de acceso:

bool isDockNestingEnabled() const
void setDockNestingEnabled(bool enabled)

dockOptions : DockOptions

Esta propiedad mantiene el comportamiento de acoplamiento de QMainWindow

El valor por defecto es AnimatedDocks | AllowTabbedDocks.

Funciones de acceso:

QMainWindow::DockOptions dockOptions() const
void setDockOptions(QMainWindow::DockOptions options)

documentMode : bool

Esta propiedad indica si la barra de pestañas de los dockwidgets con pestañas está en modo documento.

Por defecto es false.

Funciones de acceso:

bool documentMode() const
void setDocumentMode(bool enabled)

Véase también QTabBar::documentMode.

iconSize : QSize

Tamaño de los iconos de la barra de herramientas en esta ventana principal.

El valor predeterminado es el tamaño de los iconos de la barra de herramientas del estilo GUI. Tenga en cuenta que los iconos utilizados deben ser al menos de este tamaño, ya que los iconos sólo se reducen a escala.

Funciones de acceso:

QSize iconSize() const
void setIconSize(const QSize &iconSize)

tabShape : QTabWidget::TabShape

Esta propiedad contiene la forma de la pestaña utilizada para los widgets del dock con pestañas.

Por defecto es QTabWidget::Rounded.

Funciones de acceso:

QTabWidget::TabShape tabShape() const
void setTabShape(QTabWidget::TabShape tabShape)

Véase también setTabPosition().

toolButtonStyle : Qt::ToolButtonStyle

estilo de los botones de la barra de herramientas en esta ventana principal.

Para que el estilo de los botones de herramientas siga la configuración del sistema, establezca esta propiedad en Qt::ToolButtonFollowStyle. En Unix, se utilizará la configuración de usuario del entorno de escritorio. En otras plataformas, Qt::ToolButtonFollowStyle significa sólo icono.

El valor por defecto es Qt::ToolButtonIconOnly.

Funciones de acceso:

Qt::ToolButtonStyle toolButtonStyle() const
void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle)

unifiedTitleAndToolBarOnMac : bool

Esta propiedad indica si la ventana utiliza el título unificado y el aspecto de la barra de herramientas en macOS.

Tenga en cuenta que la implementación de Qt 5 tiene varias limitaciones en comparación con Qt 4:

  • El uso en ventanas con contenido OpenGL no está soportado. Esto incluye QOpenGLWidget.
  • El uso de barras de herramientas acoplables o móviles puede dar lugar a errores de pintura y no se recomienda

Funciones de acceso:

bool unifiedTitleAndToolBarOnMac() const
void setUnifiedTitleAndToolBarOnMac(bool set)

Documentación de funciones miembro

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

Construye un QMainWindow con el parent dado y el widget flags especificado.

QMainWindow establece la bandera Qt::Window por sí mismo, y por lo tanto siempre será creado como un widget de nivel superior.

[virtual noexcept] QMainWindow::~QMainWindow()

Destruye la ventana principal.

void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)

Añade el dockwidget dado al area especificado.

void QMainWindow::addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget, Qt::Orientation orientation)

Añade dockwidget a area en la dirección especificada por orientation.

void QMainWindow::addToolBar(Qt::ToolBarArea area, QToolBar *toolbar)

Añade el toolbar en el area especificado en esta ventana principal. El toolbar se coloca al final del bloque actual de la barra de herramientas (es decir, de la línea). Si la ventana principal ya maneja toolbar entonces sólo moverá la barra de herramientas a area.

Véase también insertToolBar(), addToolBarBreak(), y insertToolBarBreak().

void QMainWindow::addToolBar(QToolBar *toolbar)

Equivale a llamar a addToolBar(Qt::TopToolBarArea, toolbar)

Se trata de una función sobrecargada.

QToolBar *QMainWindow::addToolBar(const QString &title)

Crea un objeto QToolBar, estableciendo su título de ventana a title, y lo inserta en el área superior de la barra de herramientas.

Se trata de una función sobrecargada.

Véase también setWindowTitle().

void QMainWindow::addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea)

Añade una barra de herramientas a area después de todos los demás objetos presentes.

QWidget *QMainWindow::centralWidget() const

Devuelve el widget central de la ventana principal. Esta función devuelve nullptr si no se ha establecido el widget central.

Véase también setCentralWidget().

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

Reimplementa: QWidget::contextMenuEvent(QContextMenuEvent *event).

Qt::DockWidgetArea QMainWindow::corner(Qt::Corner corner) const

Devuelve el área del widget del dock que ocupa la dirección corner especificada.

Véase también setCorner().

[virtual] QMenu *QMainWindow::createPopupMenu()

Devuelve un menú emergente que contiene entradas comprobables para las barras de herramientas y los widgets del dock presentes en la ventana principal. Si no hay barras de herramientas ni widgets acoplables, esta función devuelve nullptr.

Por defecto, esta función es invocada por la ventana principal cuando el usuario activa un menú contextual, normalmente haciendo clic con el botón derecho del ratón sobre una barra de herramientas o un widget del dock.

Si desea crear un menú emergente personalizado, reimplemente esta función y devuelva un menú emergente recién creado. La propiedad del menú emergente se transfiere a la persona que realiza la llamada.

Véase también addDockWidget(), addToolBar() y menuBar().

Qt::DockWidgetArea QMainWindow::dockWidgetArea(QDockWidget *dockwidget) const

Devuelve el Qt::DockWidgetArea para dockwidget. Si no se ha añadido dockwidget a la ventana principal, esta función devuelve Qt::NoDockWidgetArea.

Véase también addDockWidget(), splitDockWidget() y Qt::DockWidgetArea.

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

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

[signal] void QMainWindow::iconSizeChanged(const QSize &iconSize)

Esta señal se emite cuando se cambia el tamaño de los iconos utilizados en la ventana. El nuevo tamaño del icono se pasa en iconSize.

Puedes conectar esta señal a otros componentes para ayudar a mantener una apariencia consistente en tu aplicación.

Véase también setIconSize().

void QMainWindow::insertToolBar(QToolBar *before, QToolBar *toolbar)

Inserta toolbar en el área ocupada por la barra de herramientas before de forma que aparezca antes que ella. Por ejemplo, en un funcionamiento normal de maquetación de izquierda a derecha, esto significa que toolbar aparecerá a la izquierda de la barra de herramientas especificada por before en un área de barra de herramientas horizontal.

Véase también insertToolBarBreak(), addToolBar() y addToolBarBreak().

void QMainWindow::insertToolBarBreak(QToolBar *before)

Inserta una barra de herramientas antes de la barra de herramientas especificada por before.

Devuelve la barra de menús de la ventana principal. Esta función crea y devuelve una barra de menú vacía si la barra de menú no existe.

Si desea que todas las ventanas de una aplicación Mac compartan una barra de menús, no utilice esta función para crearla, porque la barra de menús creada aquí tendrá este QMainWindow como padre. En su lugar, debe crear una barra de menú que no tenga padre, que luego podrá compartir entre todas las ventanas del Mac. Cree así una barra de menú sin padre:

QMenuBar *menuBar = new QMenuBar(nullptr);

Véase también setMenuBar().

Devuelve la barra de menú de la ventana principal. Esta función devuelve null si aún no se ha construido una barra de menú.

Véase también setMenuWidget().

void QMainWindow::removeDockWidget(QDockWidget *dockwidget)

Elimina dockwidget del diseño de la ventana principal y lo oculta. Tenga en cuenta que dockwidget no se elimina.

void QMainWindow::removeToolBar(QToolBar *toolbar)

Elimina toolbar del diseño de la ventana principal y lo oculta. Tenga en cuenta que toolbar no se elimina.

void QMainWindow::removeToolBarBreak(QToolBar *before)

Elimina una barra de herramientas previamente insertada antes de la barra de herramientas especificada por before.

void QMainWindow::resizeDocks(const QList<QDockWidget *> &docks, const QList<int> &sizes, Qt::Orientation orientation)

Redimensiona los widgets del dock de la lista docks al tamaño en píxeles correspondiente de la lista sizes. Si orientation es Qt::Horizontal, ajusta la anchura, en caso contrario ajusta la altura de los widgets del dock. Los tamaños se ajustarán de forma que se respeten los tamaños máximo y mínimo y el propio QMainWindow no se redimensionará. Cualquier espacio adicional/faltante se distribuye entre los widgets según el peso relativo de los tamaños.

Ejemplo:

    resizeDocks({blueWidget, yellowWidget}, {20 , 40}, Qt::Horizontal);

Si el widget azul y el amarillo están anidados en el mismo nivel, se redimensionarán de forma que el widget amarillo sea el doble de grande que el widget azul.

Si algunos widgets están agrupados en pestañas, sólo debe especificarse un widget por grupo. Los widgets que no estén en la lista podrían modificarse para respetar las restricciones.

bool QMainWindow::restoreDockWidget(QDockWidget *dockwidget)

Restaura el estado de dockwidget si se ha creado después de la llamada a restoreState(). Devuelve true si el estado fue restaurado; en caso contrario devuelve false.

Véase también restoreState() y saveState().

bool QMainWindow::restoreState(const QByteArray &state, int version = 0)

Restaura el state de las barras de herramientas y dockwidgets de esta ventana principal. También restaura la configuración de las esquinas. El número version se compara con el almacenado en state. Si no coinciden, el estado de la ventana principal se deja sin cambios, y esta función devuelve false; de lo contrario, el estado se restaura, y esta función devuelve true.

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

void MainWindow::readSettings()
{
    QSettings settings("MyCompany", "MyApp");
    restoreGeometry(settings.value("myWidget/geometry").toByteArray());
    restoreState(settings.value("myWidget/windowState").toByteArray());
}

Véase también saveState(), QWidget::saveGeometry(), QWidget::restoreGeometry(), y restoreDockWidget().

QByteArray QMainWindow::saveState(int version = 0) const

Guarda el estado actual de las barras de herramientas y dockwidgets de esta ventana principal. Esto incluye la configuración de las esquinas que puede establecerse con setCorner(). El número version se almacena como parte de los datos.

La propiedad objectName se utiliza para identificar cada QToolBar y QDockWidget. Debes asegurarte de que esta propiedad es única para cada QToolBar y QDockWidget que añadas a la ventana principal. QMainWindow

Para restaurar el estado guardado, pase el valor de retorno y el número version a restoreState().

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

void MyMainWindow::closeEvent(QCloseEvent *event)
{
    QSettings settings("MyCompany", "MyApp");
    settings.setValue("geometry", saveGeometry());
    settings.setValue("windowState", saveState());
    QMainWindow::closeEvent(event);
}

Véase también restoreState(), QWidget::saveGeometry(), y QWidget::restoreGeometry().

void QMainWindow::setCentralWidget(QWidget *widget)

Establece el widget dado como widget central de la ventana principal.

Nota: QMainWindow toma posesión del puntero widget y lo borra en el momento oportuno.

Véase también centralWidget().

void QMainWindow::setCorner(Qt::Corner corner, Qt::DockWidgetArea area)

Establece el widget del dock dado area para que ocupe el espacio especificado corner.

Véase también corner().

void QMainWindow::setMenuBar(QMenuBar *menuBar)

Establece la barra de menús de la ventana principal en menuBar.

Nota: QMainWindow se apropia del puntero menuBar y lo borra en el momento oportuno.

Véase también menuBar().

void QMainWindow::setMenuWidget(QWidget *menuBar)

Establece la barra de menús de la ventana principal en menuBar.

QMainWindow toma posesión del puntero menuBar y lo borra en el momento oportuno.

Véase también menuWidget().

void QMainWindow::setStatusBar(QStatusBar *statusbar)

Establece la barra de estado de la ventana principal en statusbar.

Establecer la barra de estado en nullptr la eliminará de la ventana principal. Tenga en cuenta que QMainWindow toma posesión del puntero statusbar y lo elimina en el momento apropiado.

Véase también statusBar().

void QMainWindow::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)

Establece la posición de la pestaña para el widget del dock areas especificado en tabPosition. Por defecto, todas las áreas dock muestran sus pestañas en la parte inferior.

Nota: La opción de anclaje VerticalTabs anula las posiciones de las pestañas establecidas por este método.

Véase también tabPosition() y setTabShape().

void QMainWindow::splitDockWidget(QDockWidget *first, QDockWidget *second, Qt::Orientation orientation)

Divide el espacio cubierto por el widget de acoplamiento first en dos partes, mueve el widget de acoplamiento first a la primera parte y mueve el widget de acoplamiento second a la segunda parte.

orientation especifica cómo se divide el espacio: Una división Qt::Horizontal coloca el segundo widget dock a la derecha del primero; una división Qt::Vertical coloca el segundo widget dock debajo del primero.

Nota: si first se encuentra actualmente en un área acoplada con pestañas, second se añadirá como nueva pestaña, no como vecina de first. Esto se debe a que una sola pestaña sólo puede contener un widget acoplable.

Nota: Qt::LayoutDirection influye en el orden de los widgets acoplables en las dos partes del área dividida. Cuando se activa la dirección de maquetación de derecha a izquierda, la colocación de los widgets del dock se invierte.

Véase también tabifyDockWidget(), addDockWidget() y removeDockWidget().

QStatusBar *QMainWindow::statusBar() const

Devuelve la barra de estado de la ventana principal. Esta función crea y devuelve una barra de estado vacía si la barra de estado no existe.

Véase también setStatusBar().

QTabWidget::TabPosition QMainWindow::tabPosition(Qt::DockWidgetArea area) const

Devuelve la posición de tabulación de area.

Nota: La opción de acoplamiento VerticalTabs anula las posiciones de tabulación devueltas por esta función.

Véase también setTabPosition() y tabShape().

[signal] void QMainWindow::tabifiedDockWidgetActivated(QDockWidget *dockWidget)

Esta señal se emite cuando el widget dock tabulado se activa seleccionando la pestaña. El widget dock activado se pasa en dockWidget.

Véase también tabifyDockWidget() y tabifiedDockWidgets().

QList<QDockWidget *> QMainWindow::tabifiedDockWidgets(QDockWidget *dockwidget) const

Devuelve los widgets del dock tabulados junto con dockwidget.

Véase también tabifyDockWidget().

void QMainWindow::tabifyDockWidget(QDockWidget *first, QDockWidget *second)

Mueve el widget acoplado second encima del widget acoplado first, creando un área acoplada con pestañas en la ventana principal.

Véase también tabifiedDockWidgets().

QWidget *QMainWindow::takeCentralWidget()

Elimina el widget central de esta ventana principal.

La propiedad del widget eliminado se pasa a la persona que llama.

Qt::ToolBarArea QMainWindow::toolBarArea(const QToolBar *toolbar) const

Devuelve el Qt::ToolBarArea para toolbar. Si no se ha añadido toolbar a la ventana principal, esta función devuelve Qt::NoToolBarArea.

Véase también addToolBar(), addToolBarBreak() y Qt::ToolBarArea.

bool QMainWindow::toolBarBreak(QToolBar *toolbar) const

Devuelve si hay una interrupción de la barra de herramientas antes de toolbar.

Véase también addToolBarBreak() y insertToolBarBreak().

[signal] void QMainWindow::toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle)

Esta señal se emite cuando se cambia el estilo utilizado para los botones de herramientas en la ventana. El nuevo estilo se pasa en toolButtonStyle.

Puedes conectar esta señal a otros componentes para ayudar a mantener una apariencia consistente en tu aplicación.

Véase también setToolButtonStyle().

© 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.