Guía Técnica de Desarrollo con Qt: Conceptos y Ejemplos Prácticos

Establecimiento del Marco del Proyecto

Configuración de la Interfaz de Usuario y QSS

Para desarrollar interfaces en Qt, es esencial manejar la disposición y los estilos. A continuación, se detallan aspectos clave.

Uso de Hojas de Estilo (QSS)

Para aplicar estilos personalizados, se pueden cargar archivos QSS desde los recursos del proyecto. Ejemplo de implementación:

QString hojaEstilo;
QFile archivoEstilo(":/res/qss/azul.qss");
archivoEstilo.open(QFile::ReadOnly);
if (archivoEstilo.isOpen()) {
    hojaEstilo = QLatin1String(archivoEstilo.readAll());
    this->setStyleSheet(hojaEstilo);
    archivoEstilo.close();
}

Gestión de Recursos y Visualización de Imágenes

Para mostrar imágenes en la interfaz, siga estos pasos:

  • Organice las imágenes en una carpeta dentro del directorio del proyecto.
  • Agregue un archivo de recuross (.qrc) mediante el asistente de Qt Creator.
  • Defina prefijos y asigne alias a los archivos para facilitar su gestión.
  • En el editor de diseño, seleccione un widget (como QLabel) y configure la propiedad de estilo para usar la imagen.

Las propiedades de imagen en QSS incluyen: background-image (no se adapta automáticamente), border-image (se adapta con estiramianto) e image (se adapta sin estiramiento).

Creación y Personalización de la Barra de Herramientas (QToolBar)

En una alpicación con QMainWindow, se puede agregar una barra de herramientas y añadirle controles. Ejemplo para insertar botones:

barraHerramientas->addWidget(botonHerramienta1);
barraHerramientas->addWidget(botonHerramienta2);
barraHerramientas->addWidget(botonHerramienta3);

Propiedades importantes de QToolBar:

  • movable: Permite mover la barra (predeterminado: true).
  • allowedAreas: Define áreas donde se puede colocar (ej. Qt::LeftToolBarArea).
  • iconSize: Establece el tamaño de los íconos.
  • toolButtonStyle: Controla el estilo de los botones (ej. ToolButtonTextUnderIcon).
  • floatable: Determina si la barra puede flotar como ventana independiente.
  • popupMode: Configura el modo de menú emergente (ej. MenuButtonPopup).

Ejemplo para configurar un menú emergente en un botón:

QMenu *menuDesplegable = new QMenu(this);
menuDesplegable->addAction(QIcon(":/iconos/proyecto.png"), "Proyecto A", this, SLOT(ejecutarAccion()));
menuDesplegable->addAction(QIcon(":/iconos/proyecto.png"), "Proyecto B", this, SLOT(ejecutarAccion()));
botonHerramienta1->setMenu(menuDesplegable);

Navegación entre Páginas en una Misma Ventana

Uso de QStackedWidget

Este widget permite apilar múltiples páginas y mostrar solo una a la vez. Ejemplo básico:

// Crear páginas personalizadas
PaginaCustom *pagina1 = new PaginaCustom(this);
pagina1->establecerTitulo("Sección 1");
PaginaCustom *pagina2 = new PaginaCustom(this);
pagina2->establecerTitulo("Sección 2");

// Agregar páginas al widget apilado
widgetApilado->addWidget(pagina1);
widgetApilado->addWidget(pagina2);
widgetApilado->setCurrentIndex(0);

// Cambiar página mediante señales
connect(botonNavegacion1, &QPushButton::clicked, [this]() {
    widgetApilado->setCurrentIndex(0);
});
connect(botonNavegacion2, &QPushButton::clicked, [this]() {
    widgetApilado->setCurrentIndex(1);
});

Uso de QStackedLayout

Alternativamente, se puede emplear un layout apilado dentro de un contenedor. Para ello, cree un QWidget como contenedor y aplique el layout:

QStackedLayout *layoutApilado = new QStackedLayout;
layoutApilado->addWidget(pagina1);
layoutApilado->addWidget(pagina2);
contenedor->setLayout(layoutApilado);

Etiquetas: Qt QSS QStackedWidget QToolBar QRC

Publicado el 6-19 01:21