1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#-* coding: utf-8 -*-
from PyQt4 import QtGui,QtCore
import sys
import os
class ImageLoader(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.resize(600, 500)
self.setWindowTitle("Image loader")
self.centralwidget = QtGui.QWidget()
self.layout = QtGui.QGridLayout(self.centralwidget)
self.label = QtGui.QLabel(self.centralwidget)
self.layout.addWidget(self.label, 0, 0, 1, 1)
# QGraphicsView can allow to resize the window
self.vue = QtGui.QGraphicsView(self.centralwidget)
self.layout.addWidget(self.vue)
"""
Creation of menuBar with all the option available to work on our image
"""
menubar = self.menuBar()
file_ = menubar.addMenu("File")
self.menuopen= QtGui.QAction("Open",self,triggered=self.open_dial)
file_.addAction(self.menuopen)
self.menuquit = QtGui.QAction("Quit", self,triggered=self.close)
file_.addAction(self.menuquit)
self.setCentralWidget(self.centralwidget)
def open_dial(self) :
reply = QtGui.QFileDialog.getOpenFileName(self, "Open Image", "", "Image Files (*.png *.jpg *.bmp)")
if reply:
self.name = reply
self.load_pic()
else:
self.name = None
print "Invalid Image"
def load_pic(self):
self.img = QtGui.QImage(self.name)
w_vue, h_vue = self.vue.width(), self.vue.height()
self.pixmap = QtGui.QPixmap.fromImage(self.img.scaled(w_vue, h_vue,
QtCore.Qt.KeepAspectRatio,
QtCore.Qt.SmoothTransformation))
w_pix, h_pix = self.img.width(), self.img.height()
self.scene = QtGui.QGraphicsScene()
self.scene.setSceneRect(0, 0, w_pix, h_pix)
self.scene.addPixmap(self.pixmap)
self.vue.setScene(self.scene)
app = QtGui.QApplication(sys.argv)
imageLoader = ImageLoader()
imageLoader.show()
sys.exit(app.exec_()) |