Найти - Пользователи
Полная версия: Pyqt лейауты
Начало » GUI » Pyqt лейауты
1
Lestoroer
PyQt (не важно 4 или 5)
В общем имеется вертикальный бокс, для того, чтобы установить объект в окно виджета мы применяем setLayout(вертикальный бокс).
Все. Теперь у нас объект имеется в окне.
Вопрос, как “выгрузить\удалить\убрать\скрыть” этот вертикальный бокс с окна виджета?
Несколько пояснений по вопросу: помимо setLayout есть setLayoutDirection(), так вот, чтобы его убрать есть метод unsetLayoutDirection(), однако, к setLayout я такого не нашел, может быть кто знает, как решить проблему?
P.S.
Предлагать скрывать компоненты по одиночке с помощью метода hide() или удалять из контейнера объекты методами removeWidget() и removeItem() не стоит, это не совсем то, что нужно.
Lestoroer
Ладно, тогда может быть кто-нибудь знает, как из компонента “сетка” все виджеты и итемы выкинуть ? В общем что нужно-то, метод какой-нибудь, который все компоненты в рабочем окне удалит разом (они у меня в сетке, поэтому вот надо придумать как из сетки выкинуть). Как-то надо очистить окно QWidget за один метод.
vic57
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_()
Lestoroer
Слушай, а создавать окно в которое вложен контейнер с окном неплохая тема, я еще подумаю над этим. . Я, кстати, решил проблему, правда не “одним кликом”, пришлось список составить, но все же. Создал список - вложил туда все элементы и прогнал их циклом фор с установкой setVisible(False) тоже неплохо, но на первый взгляд твой метод перспективнее, быстрее и удобнее
vic57
vic57
методы hide()/show() имеют все объекты, унаследованные от QWidget - GroupBox например. я им чаще пользуюсь
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB