Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt4: Как заменить layout на другой? [RSS Feed]

#1 Май 30, 2009 16:08:38

Митрич
От:
Зарегистрирован: 2009-03-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Как заменить layout на другой?

В C проблема решается вызовом деструктора того, что выдает widget.layout() и дальше widget.setLayout(newlayout), а в Python как уничтожить старый layout?



Офлайн

#2 Май 31, 2009 10:05:21

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Как заменить layout на другой?

import sip
sip.delete(widget.layout())



Офлайн

#3 Май 31, 2009 12:00:18

Митрич
От:
Зарегистрирован: 2009-03-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Как заменить layout на другой?

спасибо, про сип я и не подумал…



Офлайн

#4 Июнь 1, 2009 16:20:53

Митрич
От:
Зарегистрирован: 2009-03-19
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Как заменить layout на другой?

только с этим надо быть внимательнее, так как sip.delete не производит вызова деструктора и соответственно все детишки остаются как живые…



Офлайн

#5 Июнь 8, 2009 19:13:56

Mixolap
От:
Зарегистрирован: 2007-05-15
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Как заменить layout на другой?

А чтобы прибить все дочернии такой код пользовать?

        layout = self.graphWidget.layout()
while layout.count():
sip.delete(layout.takeAt(0))
sip.delete(layout)
это с учетом что у этих дочерних нет своих дочерних… а если есть?



Офлайн

#6 Июнь 9, 2009 00:00:21

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Как заменить layout на другой?

Mixolap

...
temp = QWidget()
temp.setLayout(widget.layout())
temp.deleteLater()
widget.setLayout(new_layout)
...
Так лучше? Надеюсь увидеть что-то изящнее:)



Офлайн

  • Начало
  • » GUI
  • » PyQt4: Как заменить layout на другой?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version