Frage

Ich bin nicht wirklich daran gewöhnt, die Benutzeroberfläche in dem Code zu schreiben, so dass ich ein paar Hinweise benötigen. Ich versuche, einen einfachen, horizontalen Scrollen Dialog auf meinem N900 zu erstellen, aber ich kann nicht herausfinden, wie dies zu tun.

Das ist, was ich habe, so weit:


    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)
War es hilfreich?

Lösung

Pls, zu überprüfen, ob ein Beispiel unten würde Ihnen helfen, sollte es einen Dialog mit horizontalen Bildlaufbereich und Schaltflächen darin erstellen.

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_())

hoffe, das hilft, Grüße

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top