Cambiar tamaño de imágenes en tiempo de ejecución

Hola, he estado trabajando con imagenes, las cuales muestro mediante a un label, funciona bien pero el problema es que necesito cambiarles el tamaño en tiempo de ejecución pues no tienen el tamaño adecuado, alguien tiene una idea de como hacerlo?.
gracias de antemano

QImage

Hola,

Mira "QImage::scaled" para rediemnsionar una Imagen.
Si lo que quieres es mantener el AspectRatio mira "QLabel::scaledContents". Esto hará que la imágen mantenga el AspectRatio incluso al modificar el tamaño del QLabel.

gracias

gracias ollarch, estube leyendo en la ayuda sobre el scaled, pero tengo una duda pues no se como emplearlo.

lo que yo hago insertar un label en un QtabWidgets y le pongo una imagen:

void MainWindow::addPushButton()
{
QLabel *boatIcon = new QLabel(documentTabs);
boatIcon->setPixmap(QPixmap(":/icons/boton.png"));
boatIcon->show();
boatIcon->move(360,150);
boatIcon->setScaledContents(true);

boatIcon->adjustSize();

}

luego hago la conexión con el método
connect(actionPushButton, SIGNAL(triggered()), this, SLOT(addPushButton()));

funciona bien, ahora lo que no sé es donde debo ubicar el scaled para que funcione. no se si tengo que crear una clase que herede de QPixmap y reimplementar el método, o agregarlo a la clase MainWindow o solo llamar el métod?
si es posible poner un ejemplo para guiarme mejor.
gracias de antemano

Layouts

Hola,

Si quieres que la imágen ocupe todo la página del QTabWidget utiliza un Layout para que el QLabel ocupe siempre todo el espacio disponible. De esta manera, al redimensionar la aplicación, el Layout redimensiona el QTabWidget que a su vez redimensiona el QLabel. El QLabel redibujará automáticamente la imágen.
Mira los ejemplos de layout de Qt.
Mira también en el QDesigner (o es diseñador de UI del QtCreator) y juega un rato con el. Desde allí puedes hacer lo mismo que estás intentando de forma "automática". Una vez tengas el UI creado, compilalo y luego puedes abrir el fichero que se crea automáticamente dentro de "GeneratedFiles" que se llamará "ui_tuMainAppClass.h". Inspecciona este fichero y verás como está hecho.

Anuncios Google