Qt 在GraphicsView中 打开一幅图片

简述:

记录一下如何在 Qt中打开一幅图片

步骤:

1. 新建一个项目,Qt C++ 项目, Qt GUI应用

之后按步骤新建就可以了,

2. 勾选中下面这三个

3. 新建一个MainWindow

点击下一步, 完成, 工程创建完毕

4 这一步之后是具体如何用Qt打开一幅图片

双击mainwindow.ui 进入design模式,

选中

拖拽到上方

于是就出现了一个窗口。

5. 之后添加一个打开图片的按钮

拖拽一个PushButton, 用同样的方法,,之后改变名字为OpenImageBtn这个是Button对象实例的名字

6. 添加信号事件, 按了OpenImageBtn之后,打开图片文件

回到 需要定义一个SLOT信号槽,来处理按了button的事件,这里有一个on_slotOpenImage_triggered() 信号槽

具体参看代码.其他包括文件打开的代码,参考网上

代码:

头文件——

mainwindow.h

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QImage>#include <QGraphicsView>#include <QGraphicsScene>#include <QFileDialog>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();private:Ui::MainWindow *ui;QImage *image;private slots:void on_slotOpenImage_triggered(); //信号槽};#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();}

mainwindow.cpp

#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);resize(800,600);this->image = new QImage();//connect the button listener eventconnect(ui->OpenImageBtn,SIGNAL(clicked()), this, SLOT(on_slotOpenImage_triggered()));}void MainWindow::on_slotOpenImage_triggered(){QString fileName = QFileDialog::getOpenFileName(this, "open image file",".","Image files (*.bmp *.jpg *.pbm *.pgm *.png *.ppm *.xbm *.xpm);;All files (*.*)");if(fileName != ""){if(image->load(fileName)){QGraphicsScene *scene = new QGraphicsScene;scene->addPixmap(QPixmap::fromImage(*image));ui->graphicsView->setScene(scene);ui->graphicsView->resize(image->width() + 10, image->height() + 10);ui->graphicsView->show();}}}MainWindow::~MainWindow(){delete image;delete ui;}

实现效果:

未打开时:

打开后:

未完待续。。。

于是,月醉了,夜醉了,我也醉了。

Qt 在GraphicsView中 打开一幅图片

相关文章:

你感兴趣的文章:

标签云: