Показать QImage с QtGui
Я новичок в Qt, и я пытаюсь создать простое графическое приложение, которое отображает изображение после нажатия кнопки.
Я могу прочитать изображение в объекте QImage
, но есть ли какой-либо простой способ вызвать функцию Qt, которая принимает QImage
в качестве входа и отображает ее?
Ответы
Ответ 1
Спасибо всем, я нашел, как это сделать, это то же самое, что Дейв и Сергей:
Я использую QT Creator:
В главном окне графического интерфейса создайте графический интерфейс перетаскивания и создайте ярлык (например, "myLabel" )
В обратном вызове кнопки (щелкните) выполните следующие действия с помощью указателя (* ui) в окне пользовательского интерфейса:
void MainWindow::on_pushButton_clicked()
{
QImage imageObject;
imageObject.load(imagePath);
ui->myLabel->setPixmap(QPixmap::fromImage(imageObject));
//OR use the other way by setting the Pixmap directly
QPixmap pixmapObject(imagePath");
ui->myLabel2->setPixmap(pixmapObject);
}
Ответ 2
Простой, но полный пример, показывающий, как отображать QImage, может выглядеть так:
#include <QtGui/QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QImage myImage;
myImage.load("test.png");
QLabel myLabel;
myLabel.setPixmap(QPixmap::fromImage(myImage));
myLabel.show();
return a.exec();
}
Ответ 3
Рисование изображения с помощью QLabel
кажется немного для меня. С более новыми версиями Qt вы можете использовать виджет QGraphicsView
. В Qt Creator перетащите виджет Graphics View
на свой пользовательский интерфейс и назовите его что-то (он называется mainImage
в коде ниже). В mainwindow.h
добавьте в класс MainWindow
что-то вроде следующего как private
:
QGraphicsScene *scene;
QPixmap image;
Затем просто отредактируйте mainwindow.cpp
и сделайте конструктор примерно таким:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
image.load("myimage.png");
scene = new QGraphicsScene(this);
scene->addPixmap(image);
scene->setSceneRect(image.rect());
ui->mainImage->setScene(scene);
}
Ответ 4
Один общий способ - добавить изображение в виджет QLabel
с помощью QLabel::setPixmap()
, а затем отобразить QLabel
, как и любой другой виджетов. Пример:
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPixmap pm("your-image.jpg");
QLabel lbl;
lbl.setPixmap(pm);
lbl.show();
return app.exec();
}
Ответ 5
Насколько я знаю, QPixmap
используется для отображения изображений и QImage
для их чтения. Существуют функции QPixmap::convertFromImage()
и QPixmap::fromImage()
для преобразования из QImage
.