title: How to make QWidget contents scrollable in PyQt?
body: <p>First, I started using PyQt few hours ago.
  So far so good - im writing rss client to familiarize myself with PyQt 
  I got <code>QApplication</code>, <code>QMainWindow</code> and two custom widgets.
  First custom widget is:</p>
  
  <pre><code>class RssItem(QWidget):
      __pyqtSignals__ = ("articleViewed(bool)",
                         "articleOpened(bool)",
                         "articleMarkedGood(bool)")
  
      def __init__(self, title, date, parent = None):
          super(RssItem, self).__init__(parent)
          self.initWidget(title, date)
  
      def initWidget(self, title, date):
          title = QLabel(title)
          date = QLabel(date)
          titleBox = QHBoxLayout()
          titleBox.addWidget(title)
          titleBox.addWidget(date)
          self.setLayout(titleBox)
  </code></pre>
  
  <p>That displays (for now) title and date in single row
  Second one accepts array of <code>RssItem</code> widgets and display them in vertical list:</p>
  
  <pre><code>class ItemsList(QWidget):
      def __init__(self, items, parent=None):
          super(ItemsList, self).__init__(parent)
          self.initWidget(items)
  
      def initWidget(self, items):
          listBox = QVBoxLayout(self)
          for item in items:
              listBox.addWidget(item)
              listBox.addStretch(1)
          self.setLayout(listBox)
  </code></pre>
  
  <p>How do I make this list scrollable? 
  Keep in mid I'm planing to have multiple <code>ItemList</code>'s in one window each should have it's own scrollbar.</p>
  
  <p>Main app function as for now is only for testing these 2 widgets:</p>
  
  <pre><code>class MainApp(Qt.QApplication):
      def __init__(self, args):
          super(MainApp, self).__init__(args)
          self.addWidgets()
          self.exec_()
  
      def addWidgets(self):
          self.window = MainWindow()
  
  
  class MainWindow(QtGui.QMainWindow):
      def __init__(self):
          super(MainWindow, self).__init__()
          self.initUI()
  
      def initUI(self):
          self.statusBar().showMessage("ok")
          self.resize(640, 480)
          self.setWindowTitle("Smart Rss")
          items=[]
          for x in range(0, 200):
              items.append(RssItem("Title no %s" % x, "2000-1-%s" %x))
          self.setCentralWidget(ItemsList(items))
          self.show()
  </code></pre>
  
  <hr>
  
  <p>EDIT:Getting closer, changed <code>ItemList.initWidget</code> to </p>
  
  <pre><code>def initWidget(self, items):
      scroll= QScrollArea(self)
      wrap = QWidget(self)
      listBox = QVBoxLayout(self)
      for item in items:
          listBox.addWidget(item)
          listBox.addStretch(1)
      wrap.setLayout(listBox)
      scroll.setWidget(wrap)
  </code></pre>
  
  <p>But now I cant figure out how to make <code>QScrollArea</code> fill all available space and auto resize when it's changed.</p>