简述:
记录一下如何在 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_OBJECT public: 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(); }
#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 event connect(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; }
实现效果:
未打开时:
打开后:
未完待续。。。