title: QScrollArea.ensureWidgetVisible method does not show target widget
body: <p>I am trying to make the last <code>QPushButton</code> visible by using method <code>QScrollArea().ensureWidgetVisible()</code>, but as you can see this method doesn't scroll till the last <code>QPushButton</code>.</p>
  
  <p>Example</p>
  
  <p><img src="https://i.stack.imgur.com/8mb0M.png" alt=""></p>
  
  <p>Could you please assist and solve my issue perhaps issue with <em>setFrameStyle</em>? thank you in advance.</p>
  
  <pre><code>import sys
  from PyQt5.QtCore import *
  from PyQt5.QtGui import *
  from PyQt5.QtWidgets import *
  
  
  class Widget(QWidget):
  
      def __init__(self, parent= None):
          super(Widget, self).__init__()
          self.setFixedHeight(200)
  
          #Container Widget        
          widget = QWidget()
          #Layout of Container Widget
          layout = QVBoxLayout(self)
          for _ in range(20):
              btn = QPushButton("test")
              layout.addWidget(btn)
          widget.setLayout(layout)
  
  
          #Scroll Area Properties
          scroll = QScrollArea()
          scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
          scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
          scroll.setWidgetResizable(False)
          scroll.setWidget(widget)
  
          # print(scroll.verticalScrollBar().maximum())
          # vbar = scroll.verticalScrollBar()
          # vbar.setValue(vbar.maximum())
          #vbar.setValue(vbar.maximum())
  
  
          #Scroll Area Layer add 
          vLayout = QVBoxLayout(self)
          vLayout.addWidget(scroll)
          self.setLayout(vLayout)
  
  
          # items = (layout.itemAt(i) for i in range(layout.count())) 
          # for w in items:
          #     print(w)
          print(layout.count())
          #scroll.ensureWidgetVisible(layout.itemAt(layout.count()-5).widget(), xMargin=10, yMargin=10 )
          scroll.ensureWidgetVisible(layout.itemAt(layout.count()-1).widget() )
          print(layout.itemAt(layout.count()-1).widget(),"last widget")
  
  
  if __name__ == '__main__':
      app = QApplication(sys.argv)
      dialog = Widget()
      dialog.show()
  
      app.exec_()
  </code></pre>