Python PyQt Réglage De La Zone De Défilement
Je suis en train de faire mon QGroupBox
défilant, une fois qu'il plus important que 400px. Le contenu de la QGroupBox
sont générées à l'aide d'une boucle for. Ceci est un exemple de la façon dont il a été fait.
mygroupbox = QtGui.QGroupBox('this is my groupbox')
myform = QtGui.QFormLayout()
labellist = []
combolist = []
for i in range(val):
labellist.append(QtGui.QLabel('mylabel'))
combolist.append(QtGui.QComboBox())
myform.addRow(labellist[i],combolist[i])
mygroupbox.setLayout(myform)
Puisque la valeur de val
dépend d'autres facteurs, la myform
format de mise en page n'a pas pu être déterminée. Afin de résoudre ce problème, j'ai ajouté un QScrollableArea
comme ça.
scroll = QtGui.QScrollableArea()
scroll.setWidget(mygroupbox)
scroll.setWidgetResizable(True)
scroll.setFixedHeight(400)
Malheureusement, cela ne semble faire aucun effet sur la zone de groupe. Aucun signe de la barre de défilement. Ai-je raté quelque chose?
Vous devez vous connecter pour publier un commentaire.
Autre que l'évidence de la faute de frappe (je suis sûr que vous avez voulu dire
QScrollArea
), je ne vois rien de mal à ce que vous avez posté. Donc le problème doit se situer ailleurs, dans votre code: un modèle manquant peut-être?Juste pour s'assurer que nous sommes sur la même page, ce minime script fonctionne comme prévu pour moi:
QGroupBox
dans la mise en page finale, au lieu de mettreQScrollArea
. Il travaille maintenant.scroll.setWidgetResizable(True)
est essentiel pour les widgets apparaissent effectivement dans le scrollarea. espérons que cela aide quelqu'un dans l'avenir.