Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PySide.QtGui import QApplication, QMainWindow, QHBoxLayout, \
- QVBoxLayout, QListWidget, QLabel, QWidget, QPixmap, \
- QPushButton, QFileDialog
- from PySide.QtCore import QSettings, Qt
- import sys, os
- class MyWindow(QMainWindow):
- def __init__(self):
- super(MyWindow, self).__init__()
- self.settings = QSettings("MySoft", "MyWindow")
- if self.settings.value("geometry"):
- self.restoreGeometry(self.settings.value("geometry"))
- self.setWindowTitle("Simple Image Browser")
- centralWidget = QWidget()
- mainLayout = QHBoxLayout(centralWidget)
- self.setCentralWidget(centralWidget)
- fileBrowserLayout = QVBoxLayout()
- mainLayout.addLayout(fileBrowserLayout)
- browseButton = QPushButton("Browse...")
- self.fileBrowser = FileBrowser()
- self.imageViewer = ImageViewer(self.fileBrowser)
- fileBrowserLayout.addWidget(browseButton)
- fileBrowserLayout.addWidget(self.fileBrowser)
- mainLayout.addWidget(self.imageViewer)
- # connect fileBrowser.itemClicked to imageViewer.setImage()
- self.fileBrowser.itemSelectionChanged.connect(self.imageViewer.setImage)
- browseButton.clicked.connect(self.openFolder)
- def openFolder(self):
- folder = QFileDialog.getExistingDirectory(self, "Select directory", "e:/")
- if len(folder):
- self.fileBrowser.setRootPath(folder)
- self.fileBrowser.getFiles()
- def closeEvent(self, event):
- self.settings.setValue("geometry", self.saveGeometry())
- class FileBrowser(QListWidget):
- def __init__(self):
- super(FileBrowser, self).__init__()
- self.setMaximumWidth(300)
- self.files = []
- self.rootPath = None
- def setRootPath(self, path):
- path = path.replace("\\", "/") + "/"
- self.rootPath = path
- print self.rootPath
- def getFiles(self):
- self.clear()
- self.files = []
- [self.files.append(i) for i in os.listdir(self.rootPath) if os.path.isfile(self.rootPath + i)]
- for i in self.files:
- self.addItem(i)
- class ImageViewer(QLabel):
- def __init__(self, fileBrowser):
- super(ImageViewer, self).__init__()
- self.fileBrowser = fileBrowser
- def setImage(self):
- imagePath = self.fileBrowser.rootPath + self.fileBrowser.currentItem().text()
- pixmap = QPixmap(imagePath)
- if pixmap:
- pixmap = pixmap.scaled(1000,1000, Qt.KeepAspectRatio, Qt.SmoothTransformation)
- self.setPixmap(pixmap)
- app = QApplication(sys.argv)
- win = MyWindow()
- win.show()
- app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment