Есть виджет QGraphicsView. На нем устанавливаю с помощью setScene QGraphicsScene.
/// Cлoт выбора фотографии
void CutAway::clickSelectPhoto()
{
QString fname(valueElement("PhotoName", QString("")).toString()),
caption("Диалоговoe oкнo oткрытия фoтoгpaфии");
QString photo_name(QFileDialog::getOpenFileName(this, unicode(caption), fname, QString("*.jpg *.png")));
photo_name = QDir::toNativeSeparators(photo_name);
if(photo_name.isEmpty())
return;
writeElement("PhotoName", photo_name);
linePathPhoto -> setText(photo_name);
QImage img(QSize(400, 300), QImage::Format_RGB32);
img.load(photo_name);
_scene -> addPixmap(QPixmap::fromImage(img, Qt::OrderedAlphaDither));
}
Это код кнопки выбора фотографии. Как сделать, чтобы отобразилась фото? Пока показывается черная рамка вместо фото. Заранее спасибо за помощь.
А зачам через промежуточный QImage?
И вообще, у тебя сам файл-то корректно загружается?
1) функция load() возвращает булевое значение, в зависимости от результата загрузки.
2) я делал так:
QPixmap pix("./misc/circuit.svg");
scene->addPixmap(pix);
QPixmap pix("./misc/circuit.svg");
scene->addPixmap(pix);
#include <QtCore>
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QString photo_name(QFileDialog::getOpenFileName(0, "Open image", ".", "Images (*.png *.jpg *.jpeg)"));
if(photo_name.isEmpty())
return -1;
QGraphicsView view;
QGraphicsScene scene;
view.setScene(&scene);
scene.addPixmap(QPixmap(photo_name));
view.resize(480, 320);
view.show();
return app.exec();
}
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)