2013-05-17 1 views
0

Я хочу иметь несколько детей одного QWidget. Однако, когда я просто устанавливаю дочерний элемент несколько раз, появляется только последний из них. Конечная цель - разместить этот виджет в QScrollArea. Вот мой текущий код:Несколько дочерних виджетов в pyside

class EditDialog(QDialog): 
    def __init__(self,widget): 
     super(EditDialog, self).__init__() 

     self.scroller = QScrollArea() 
     self.form = QWidget() 
     self.lab = QLabel(self.form) 
     self.lab.setText("Label") 
     self.edit = QLineEdit(self.form) 
     self.edit.setText("LineEdit") 
     self.but = QPushButton("PushButton",self.form) 
     self.scroller.setWidget(self.form) 

     self.layout = QVBoxLayout() 
     self.layout.addWidget(self.scroller) 
     self.setLayout(self.layout) 

     self.exec_() 

Однако отображается только QPushButton. Прошу прощения, если это глупый вопрос, но я ничего не смог найти в Google, который мне помог.

Edit:
Я пытался ставить эти виджеты (ярлыки, кнопки и линии-редактирование) в макете, но как только вы получите довольно много из них, они начинают изменение размера в зависимости от размера QScrollArea , Я не хочу этого, хотя, я хочу, чтобы они оставались одного размера, а не зависели от размера QScrollArea.

ответ

1

Необходимо добавить свои виджеты в макет. Что-то вроде этого добавит ваш ярлык, редактирование строки и кнопку к вашему макету.

self.layout.addWidget(self.lab) 
self.layout.addWidget(self.edit) 
self.layout.addWidget(self.but) 
+0

Да, я тоже об этом думал, но как только вы получаете большее количество виджетов, они изменяются в зависимости от размера QScrollArea. – KFox

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

  • Нет связанных вопросов^_^