robertvari

pythonsuli_temp

Nov 17th, 2018
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.66 KB | None | 0 0
  1. from PySide.QtGui import QApplication, QMainWindow, QHBoxLayout, \
  2.     QVBoxLayout, QListWidget, QLabel, QWidget, QPixmap, \
  3.     QPushButton, QFileDialog
  4. from PySide.QtCore import QSettings, Qt
  5. import sys, os
  6.  
  7.  
  8.  
  9. class MyWindow(QMainWindow):
  10.     def __init__(self):
  11.         super(MyWindow, self).__init__()
  12.         self.settings = QSettings("MySoft", "MyWindow")
  13.         if self.settings.value("geometry"):
  14.             self.restoreGeometry(self.settings.value("geometry"))
  15.  
  16.         self.setWindowTitle("Simple Image Browser")
  17.  
  18.         centralWidget = QWidget()
  19.         mainLayout = QHBoxLayout(centralWidget)
  20.         self.setCentralWidget(centralWidget)
  21.  
  22.         fileBrowserLayout = QVBoxLayout()
  23.         mainLayout.addLayout(fileBrowserLayout)
  24.         browseButton = QPushButton("Browse...")
  25.         self.fileBrowser = FileBrowser()
  26.  
  27.         self.imageViewer = ImageViewer(self.fileBrowser)
  28.  
  29.         fileBrowserLayout.addWidget(browseButton)
  30.         fileBrowserLayout.addWidget(self.fileBrowser)
  31.         mainLayout.addWidget(self.imageViewer)
  32.  
  33.         # connect fileBrowser.itemClicked to imageViewer.setImage()
  34.         self.fileBrowser.itemSelectionChanged.connect(self.imageViewer.setImage)
  35.         browseButton.clicked.connect(self.openFolder)
  36.  
  37.     def openFolder(self):
  38.         folder = QFileDialog.getExistingDirectory(self, "Select directory", "e:/")
  39.  
  40.         if len(folder):
  41.             self.fileBrowser.setRootPath(folder)
  42.             self.fileBrowser.getFiles()
  43.  
  44.     def closeEvent(self, event):
  45.         self.settings.setValue("geometry", self.saveGeometry())
  46.  
  47.  
  48. class FileBrowser(QListWidget):
  49.     def __init__(self):
  50.         super(FileBrowser, self).__init__()
  51.         self.setMaximumWidth(300)
  52.         self.files = []
  53.         self.rootPath = None
  54.  
  55.     def setRootPath(self, path):
  56.         path = path.replace("\\", "/") + "/"
  57.         self.rootPath = path
  58.  
  59.         print self.rootPath
  60.  
  61.     def getFiles(self):
  62.         self.clear()
  63.         self.files = []
  64.  
  65.         [self.files.append(i) for i in os.listdir(self.rootPath) if os.path.isfile(self.rootPath + i)]
  66.  
  67.         for i in self.files:
  68.             self.addItem(i)
  69.  
  70.  
  71. class ImageViewer(QLabel):
  72.     def __init__(self, fileBrowser):
  73.         super(ImageViewer, self).__init__()
  74.         self.fileBrowser = fileBrowser
  75.  
  76.     def setImage(self):
  77.         imagePath = self.fileBrowser.rootPath + self.fileBrowser.currentItem().text()
  78.  
  79.         pixmap = QPixmap(imagePath)
  80.         if pixmap:
  81.             pixmap = pixmap.scaled(1000,1000, Qt.KeepAspectRatio, Qt.SmoothTransformation)
  82.             self.setPixmap(pixmap)
  83.  
  84.  
  85.  
  86. app = QApplication(sys.argv)
  87. win = MyWindow()
  88. win.show()
  89. app.exec_()
Advertisement
Add Comment
Please, Sign In to add comment