2010-09-05 2 views
2

Я не очень привык писать пользовательский интерфейс в коде, поэтому мне нужно несколько указателей. Я пытаюсь создать простой горизонтальный диалог прокрутки на моем N900, но я не могу понять, как это сделать.Прокрутка с PyQT на Maemo5

Это то, что я до сих пор:


    def __init__(self,parent = None): 

     QDialog.__init__(self,parent) 
     #if name == None: 
     self.setWindowTitle('Testing scrolling') 
     self.scrollArea = QScrollArea(self) 
     self.scrollArea.setWidgetResizable(True) 
     self.scrollArea.setMinimumSize(100,150) 
     self.aWidget = QWidget(self.scrollArea) 
     self.aWidget.setMinimumSize(20,200) 
     self.aWidget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) 
     self.scrollArea.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) 
     self.scrollArea.setWidget(self.aWidget) 
     scroller = self.scrollArea.property("kineticScroller").toPyObject() 
     scroller.setEnabled(True) 

     _layout = QGridLayout(self.aWidget) 
     _layout.setSpacing(60) 
     _layout.setMargin(11) 

     _layout.addWidget(QPushButton('Test0'),0,0) 
     _layout.addWidget(QPushButton('Test1'),0,1) 
     _layout.addWidget(QPushButton('Test2'),0,2) 
     _layout.addWidget(QPushButton('Test3'),0,3) 
     _layout.addWidget(QPushButton('Test4'),0,4) 
     _layout.addWidget(QPushButton('Test5'),0,5) 
     _layout.addWidget(QPushButton('Test6'),0,6) 

ответ

4

Pls, проверьте пример ниже поможет вам, он должен создать диалог с горизонтальной области прокрутки и кнопки в нем.

class MyDialog(QDialog): 
    def __init__(self,parent = None): 
     QDialog.__init__(self,parent) 

     self.setWindowTitle('Testing scrolling') 
     self.setGeometry(250, 200, 350, 400) 

     widget = QWidget() 
     widgetLayout = QHBoxLayout() 
     for i in range(0, 25): 
      button = QPushButton("test button {0}".format(i)) 
      widgetLayout.addWidget(button)   
     widget.setLayout(widgetLayout) 

     scrollArea = QScrollArea() 
     scrollArea.setWidget(widget) 

     dialogLayout = QVBoxLayout() 
     dialogLayout.addWidget(scrollArea)  
     self.setLayout(dialogLayout) 

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    dlg = MyDialog() 
    dlg.show() 
    sys.exit(app.exec_()) 

надеюсь, что это помогает, считает

+0

Работал как шарм, спасибо! - Как ни странно, часть '.format (i)' не работала. Разве это не основная функция python? – skerit

+0

да, это новая версия 2.6. Подробности здесь http://docs.python.org/library/stdtypes.html искать str.format (* args, ** kwargs) –