Форум сайта python.su
PyQt (не важно 4 или 5)
В общем имеется вертикальный бокс, для того, чтобы установить объект в окно виджета мы применяем setLayout(вертикальный бокс).
Все. Теперь у нас объект имеется в окне.
Вопрос, как “выгрузить\удалить\убрать\скрыть” этот вертикальный бокс с окна виджета?
Несколько пояснений по вопросу: помимо setLayout есть setLayoutDirection(), так вот, чтобы его убрать есть метод unsetLayoutDirection(), однако, к setLayout я такого не нашел, может быть кто знает, как решить проблему?
P.S.
Предлагать скрывать компоненты по одиночке с помощью метода hide() или удалять из контейнера объекты методами removeWidget() и removeItem() не стоит, это не совсем то, что нужно.
Отредактировано Lestoroer (Апрель 27, 2016 12:39:03)
Офлайн
Ладно, тогда может быть кто-нибудь знает, как из компонента “сетка” все виджеты и итемы выкинуть ? В общем что нужно-то, метод какой-нибудь, который все компоненты в рабочем окне удалит разом (они у меня в сетке, поэтому вот надо придумать как из сетки выкинуть). Как-то надо очистить окно QWidget за один метод.
Отредактировано Lestoroer (Апрель 27, 2016 18:58:51)
Офлайн
from PyQt4.Qt import * def on_click(): if btn.text() == 'Hide': w1.hide() btn.setText('Show') elif btn.text() == 'Show': w1.show() btn.setText('Hide') app = QApplication([]) w = QWidget() w1 = QWidget() lbl1 = QLabel('lbl1') lbl2 = QLabel('lbl2') lbl3 = QLabel('lbl3') lay1 = QVBoxLayout(w1) lay1.addWidget(lbl1) lay1.addWidget(lbl2) lay1.addWidget(lbl3) lay = QHBoxLayout(w) btn = QPushButton('Hide') btn.clicked.connect(on_click) lay.addWidget(w1) lay.addWidget(btn) w.move(0,0) w.show() app.exec_()
Отредактировано vic57 (Апрель 28, 2016 12:48:23)
Офлайн
Слушай, а создавать окно в которое вложен контейнер с окном неплохая тема, я еще подумаю над этим. . Я, кстати, решил проблему, правда не “одним кликом”, пришлось список составить, но все же. Создал список - вложил туда все элементы и прогнал их циклом фор с установкой setVisible(False) тоже неплохо, но на первый взгляд твой метод перспективнее, быстрее и удобнее
vic57
Отредактировано Lestoroer (Апрель 28, 2016 16:34:28)
Офлайн
методы hide()/show() имеют все объекты, унаследованные от QWidget - GroupBox например. я им чаще пользуюсь
Офлайн