Pues mira así me han quedado los códigos y a mi me funciona (hacia tiempo que no tocaba Qt, ahora estoy mirando gtk+).Lo único que he hecho ha sido poner dos variables privadas en la clase MainWindow , un QPixmap y un QGraphics scene.Entonces al llegar a la función on_pushbutton_clicked, lo que hacemos es, cargamos en la variable pixmap el archivo desde una ruta ejemplo("C:/users/pictures/miimagen.jpg), después agrego a la variable scene un Qpixmap(al que le habíamos cargado la imagen obviamente),ponemos la variable scene en ui(para referirnos a la interfaz)->graphicsView con la funcion setScene y mostramos el QGraphicsView.Te cuento lo que aprendí en Qt el tiempo que estuve utilizandolo , para referirnos a todo lo que haya en la interfaz gráfica que editamos con ese editor tan bonito usamos el puntero creo que es un puntero, ui, en cuanto pongamos un punto detras de esas dos letras nos aparecerá una lista de los objetos que tenemos en la interfaz gráfica, por ejemplo a nosotros dos nos saldrá uno que se llama pushButton y otro graphicsView , esto digamos que son variables directamente asignadas a la interfaz , por eso cuando creaste la variable QGraphicsView en la función , aunque cargase una imagen no iba a mostrarse nada, bueno ya sabes alguna duda más, por mi parte aquí estoy .He aquí el código :
PD: He de decir que nunca he hecho esto pero bueno leyendo se aprende.
PD2: Lo de centrar la imagen no lo he puesto porque lo he estado tocando y el scroll no se movía pero te lo pongo ahora porque ya se ha movido , es que hay que ponerle valores muy grandes ,por lo menos en el caso de mi imagen. Lo pondriamos así, ¿a que nos referimos? al QGraphicsView de la interfaz entonces ui->graphicsView->centerOn(xxx,xxx)
¡Un saludo crack!
MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(on_pushButton_clicked()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
pixmap.load("la ruta del disco duro que quieras siempre separado con esta barra / no con esta \ también puedes hacerlo con un archivo de recursos");
scene.addPixmap(pixmap);
ui->graphicsView->setScene(&scene);
ui->graphicsView->show();
}
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QGraphicsView>
#include <QImage>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
QPixmap pixmap;
QGraphicsScene scene;
};
#endif // MAINWINDOW_H
Main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}