C/Visual C - Cuadro combinado con imagenes.

 
Vista:

Cuadro combinado con imagenes.

Publicado por Jesús (2 intervenciones) el 04/10/2002 12:41:24
Después de mucho investigar he logrado hacer un cuadro combinado con opciones de tipo Icono, soy incapaz de hacer que aparezca un icono que no sea cuadrado, es decir rectangular. Aunque lo diseñe de esta manera me lo comprime cuando lo visualiza y queda mal.
Pienso que debería hacerse con Bitmaps, pero soy incapaz de encontrar una manera.
Si alguien puede darme alguna idea obtener este resultado se lo agradecería,
Un saludo,
Jesús
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Implementación de un cuadro combinado con iconos rectangulares en Qt

Publicado por Alejandro (913 intervenciones) el 24/03/2025 21:46:17
Hola Jesús,

Para lograr que un cuadro combinado (ComboBox) muestre iconos rectangulares en lugar de cuadrados, puedes utilizar imágenes de tipo bitmap y ajustar el tamaño de los elementos del ComboBox. Aquí te dejo una idea de cómo hacerlo en Qt, que es una de las bibliotecas más comunes para este tipo de aplicaciones.

Ejemplo de implementación



1. Crea un ComboBox personalizado que permita mostrar iconos de diferentes tamaños.
2. Carga los bitmaps y ajusta el tamaño de los elementos.

Aquí tienes un ejemplo de cómo podrías implementar esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <QComboBox>
#include <QPixmap>
#include <QIcon>
#include <QPainter>
 
class CustomComboBox : public QComboBox {
public:
    CustomComboBox(QWidget *parent = nullptr) : QComboBox(parent) {}
 
    void addItemWithIcon(const QString &text, const QString &iconPath) {
        QPixmap pixmap(iconPath);
        // Ajustar el tamaño del pixmap si es necesario
        pixmap = pixmap.scaled(100, 50, Qt::KeepAspectRatio, Qt::SmoothTransformation); // Cambia el tamaño según sea necesario
        QIcon icon(pixmap);
        addItem(icon, text);
    }
};
 
// Ejemplo de uso
void setupComboBox() {
    CustomComboBox *comboBox = new CustomComboBox();
    comboBox->addItemWithIcon("Opción 1", "ruta/a/tu/icono1.png");
    comboBox->addItemWithIcon("Opción 2", "ruta/a/tu/icono2.png");
    comboBox->addItemWithIcon("Opción 3", "ruta/a/tu/icono3.png");
    // Agregar el comboBox a tu layout o ventana
}

Notas importantes


- Ajuste de tamaño: En el ejemplo,se utiliza `pixmap.scaled()` para ajustar el tamaño del icono. Puedes modificar los valores `100` y `50` para que se ajusten a tus necesidades.
- Formato de icono: Asegúrate de que los iconos que estás utilizando estén en un formato que Qt pueda manejar, como PNG o BMP.
- Aspecto visual: Si el icono se ve distorsionado, asegúrate de mantener la relación de aspecto al escalar.

Alternativa con bitmaps


Si prefieres trabajar directamente con bitmaps, puedes cargar un bitmap y luego convertirlo a un `QIcon` de la siguiente manera:

1
2
3
4
5
#include <QBitmap>
 
QBitmap bitmap("ruta/a/tu/bitmap.bmp");
QIcon icon(bitmap);
addItem(icon, "Texto de opción");

Conclusión


Con este enfoque, deberías poder mostrar iconos rectangulares en tu cuadro combinado sin que se compriman.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar