2013-06-03 3 views
1

아래의 코드는 하나의 이미지를로드합니다. 폴더에있는 알려지지 않은 이미지를로드하고 연락처 시트에 표시하고 싶습니다.접촉 시트를 PySide로로드하는 방법은 무엇입니까?

아래 코드를 수정하여 이미지 목록을 나란히 표시 할 수 있습니까?

import sys 
from PySide import QtGui, QtCore 

class Example(QtGui.QWidget): 

    def __init__(self): 
     super(Example, self).__init__() 

     self.initUI() 

    def initUI(self):  

     hbox = QtGui.QHBoxLayout(self) 
     pixmap = QtGui.QPixmap("myImage.jpg") 

     lbl = QtGui.QLabel(self) 
     lbl.setPixmap(pixmap) 

     hbox.addWidget(lbl) 
     self.setLayout(hbox) 

     self.setGeometry(300, 300, 280, 170) 
     self.setWindowTitle('Image viewer') 
     self.show()   

def main(): 

    app = QtGui.QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 

답변

1

이 수도 당신이 스크롤바를 포함하고자하는 전체 일 ..

import os 
import sys 
from PySide import QtGui, QtCore 

class Example(QtGui.QWidget): 

    def __init__(self): 
     super(Example, self).__init__() 
     self.initUI() 

    def initUI(self): 
     self.img_fold = r"C:\Users\abhishek.garg\Desktop\New folder" 

     self.widget_layout = QtGui.QVBoxLayout(self) 
     self.scrollarea = QtGui.QScrollArea() 
     self.scrollarea.setWidgetResizable(True) 
     self.widget_layout.addWidget(self.scrollarea) 
     self.widget = QtGui.QWidget() 
     self.layout = QtGui.QVBoxLayout(self.widget) 
     self.scrollarea.setWidget(self.widget) 

     self.layout.setAlignment(QtCore.Qt.AlignHCenter) 

     for img in os.listdir(self.img_fold): 
      img_path = os.path.join(self.img_fold, img) 

      pixmap = QtGui.QPixmap(img_path) 
      lbl = QtGui.QLabel(self) 
      lbl.setPixmap(pixmap) 

      self.layout.addWidget(lbl) 


     self.setGeometry(300, 300, 280, 170) 
     self.setWindowTitle('Image viewer') 
     self.show() 

def main(): 

    app = QtGui.QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 
+0

아,이게 완벽합니다. - 스크롤 막대가 필요했습니다 :) – fredrik

0

이 시도 :

import sys 
from PySide import QtGui, QtCore 

class Example(QtGui.QWidget): 

    def __init__(self): 
     super(Example, self).__init__() 

     self.initUI() 

    def initUI(self): 

     hbox = QtGui.QHBoxLayout(self) 


     img_fold = "C:/my_contacts" 

     for img in os.listdir(img_fold): 
      img_path = os.path.join(img_fold, img) 

      pixmap = QtGui.QPixmap(img_path) 
      lbl = QtGui.QLabel(self) 
      lbl.setPixmap(pixmap) 

      hbox.addWidget(lbl) 

     self.setLayout(hbox) 

     self.setGeometry(300, 300, 280, 170) 
     self.setWindowTitle('Image viewer') 
     self.show() 

def main(): 

    app = QtGui.QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 


if __name__ == '__main__': 
    main() 
+0

와 나는 또한 당신이 원하는 경우에 그리드 레이아웃을 사용하는 것이 좋습니다 사진 앨범과 같은 것을 만들려면 상자를 스크롤 할 수 있도록 만들어야합니다. 그렇지 않으면 화면에서 벗어난 경우 사용할 수 없습니다. – abhishekgarg

+0

정말 대단합니다. 고마워요! – fredrik

+0

수천 개의 이미지가 포함 된 폴더로 앞으로 이동하는 방법과 창을 즉시 표시 한 다음 이미지를 스크롤 할 때 창에 이미지를 채우려는 위치에 대한 포인터는 무엇입니까? – fredrik