Reputation: 51
I want to show an Image in GUI using filepicker in PyQT. So far I managed to open image files, but completely confused on how to show image in GUI.
import sys
from PyQt4 import QtGui, QtCore
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(100, 100, 500, 300)
self.setWindowTitle("PyQT Show Image")
openFile = QtGui.QAction("&File", self)
openFile.setShortcut("Ctrl+O")
openFile.setStatusTip("Open File")
openFile.triggered.connect(self.file_open)
self.statusBar()
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('&File')
fileMenu.addAction(openFile)
self.home()
def home(self):
self.show()
def file_open(self):
name = QtGui.QFileDialog.getOpenFileName(self, 'Open File')
file = open(name, 'r')
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
Kindly guide me here on how to show image in GUI. Thank you
Upvotes: 3
Views: 5252
Reputation: 367
I have updated the code in accordance with pyQt5 as it can be helpful for some persons.(reference : Controlix's code posted above)
import sys
from PyQt5 import QtGui, QtCore
from PyQt5.QtWidgets import QFileDialog,QLabel,QAction,QMainWindow,QApplication
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(100, 100, 500, 300)
self.setWindowTitle("PyQT Show Image")
openFile = QAction("&File", self)
openFile.setShortcut("Ctrl+O")
openFile.setStatusTip("Open File")
openFile.triggered.connect(self.file_open)
self.statusBar()
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('&File')
fileMenu.addAction(openFile)
self.lbl = QLabel(self)
self.setCentralWidget(self.lbl)
self.home()
def home(self):
self.show()
def file_open(self):
name = QFileDialog.getOpenFileName(self, 'Open File')
print(name)
pixmap = QtGui.QPixmap(name[0])
self.lbl.setPixmap(pixmap.scaled(self.lbl.size()))
def run():
app = QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
Upvotes: 2
Reputation: 447
How about this?
import sys
from PyQt4 import QtGui, QtCore
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(100, 100, 500, 300)
self.setWindowTitle("PyQT Show Image")
openFile = QtGui.QAction("&File", self)
openFile.setShortcut("Ctrl+O")
openFile.setStatusTip("Open File")
openFile.triggered.connect(self.file_open)
self.statusBar()
mainMenu = self.menuBar()
fileMenu = mainMenu.addMenu('&File')
fileMenu.addAction(openFile)
self.lbl = QtGui.QLabel(self)
self.setCentralWidget(self.lbl)
self.home()
def home(self):
self.show()
def file_open(self):
name = QtGui.QFileDialog.getOpenFileName(self, 'Open File')
pixmap = QtGui.QPixmap(name)
self.lbl.setPixmap(pixmap.scaled(self.lbl.size()))
def run():
app = QtGui.QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
Upvotes: 2