2015-11-10 3 views
1

Я создаю интерфейс в PyQt4, и мне нужны полосы прокрутки. Мой интерфейс использует абсолютное позиционирование. Я посмотрел другие протекторы для добавления полос прокрутки, но единственные ответы даны для этих интерфейсов без макета (например, VBoxLayout, Grid Layout и т. Д.).Как добавить полосы прокрутки в PyQt4 БЕЗ с абсолютным позиционированием

Пожалуйста, взгляните на мой код. Как я могу добавить полосы прокрутки (горизонтальные и вертикальные) к этому интерфейсу?

Полный код не форматировать должным образом здесь, так что я свяжусь с этим 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() 

Вопрос в том, как изменить код выше, чтобы у меня были горизонтальные и вертикальные полосы прокрутки?

ответ

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) 
+0

Это заставило меня один шаг ближе, но когда я изменяю наследство (путем замены QtGui.QWidget с QtGui.QScrollArea) и попытаться изменить размер окна, не появилось ни одной полосы прокрутки. –

Смежные вопросы