Domanda

In realtà non sono abituato a scrivere l'interfaccia utente nel codice, quindi ho bisogno di alcune indicazioni. Sto cercando di creare un semplice, finestra lo scorrimento orizzontale sul mio N900, ma io non riesco a capire come fare questo.

Questo è quello che ho finora:


    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)
È stato utile?

Soluzione

Pls, controllo se l'esempio di seguito potrebbe dare una mano, si dovrebbe creare un dialogo con area di scorrimento orizzontale e pulsanti in esso.

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

Spero che questo aiuti, saluti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top