如何在PyQt4中添加带有绝对定位的滚动条

时间:2015-11-10 17:22:10

标签: python pyqt pyqt4

我在PyQt4中创建了一个界面,我需要滚动条。我的界面使用绝对定位。我已经看了添加滚动条的其他步骤,但给出的唯一答案是那些没有布局的接口(例如VBoxLayout,Grid Layout等)。

请查看我的代码。如何向此界面添加滚动条(水平和垂直)?

完整代码在此处无法正确格式化,因此我将链接到此pastebin

http://pastebin.com/hEH4R534

这是界面的基础(1500px乘1000px窗口)

    class Example(QtGui.QWidget):
        def __init__(self):

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


       def initUI(self):
            self.setGeometry(100,100,1500,1000)




  def main():
     import sys
     app = QtGui.QApplication(sys.argv)
     window = Example()
     window.show()
     sys.exit(app.exec_())

  main()

问题是......我如何修改上面的代码,以便我有水平和垂直滚动条?

1 个答案:

答案 0 :(得分:0)

只有从QAbstractScrollArea继承的小部件才能有滚动条。您可以将其中一个小部件放在窗口小部件中,然后将其他窗口小部件放在该窗口小部件中。或者,让您的小部件继承自QScrollArea而不是QWidget。

默认情况下,滚动条仅在必要时显示隐藏的子窗口小部件。您可以通过设置窗口小部件的滚动条策略来强制显示滚动条。

from PyQt4.QtCore import Qt

...

def initUI(self):
    self.setGeometry(100, 100, 1500, 1000)
    self.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOn)
    self.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)