pyqt: как удалить виджет?

У меня есть виджет QGroupBox с QGroupBox элементами, которые я хочу удалить. Как мне это сделать? Я не могу найти removeWidget , removeChild , removeItem или что-либо подобное в документах . Я могу только видеть, как удалить вещи из макета, но это, по-видимому, не удаляет его из фактического виджета.

  • SVG-рендеринг в приложении PyGame
  • Подключение двух разных виджетов на qt с помощью python с помощью кнопки
  • tkinter - Как установить шрифт для текста?
  • Tkinter - ввод текста в текстовый виджет
  • Какой инструментарий gui следует использовать с Pygame?
  • Интерактивная функция ноутбука IPython: как установить диапазон ползунков
  • Создайте новый виджет ttk от tkinter
  • python qt, отображать текст / надпись над другим виджетами (фононом)
  • 3 Solutions collect form web for “pyqt: как удалить виджет?”

    Если ваш виджет не имеет дочерних виджетов, которые зависят от него, я думаю, вы можете использовать:

     layout.removeWidget(self.widget_name) self.widget_name.deleteLater() self.widget_name = None 

    в моих тестах, когда это виджет, у которого есть дети, вы должны:

     import sip layout.removeWidget(self.widget_name) sip.delete(self.widget_name) self.widget_name = None 

    если у вас нет имени переменной для виджета на классе или на глобальном уровне, вы все же можете удалить из макета с помощью layout.takeAt (index) и получить указатель виджета из QLayoutItem, который возвращает эти функции с помощью метода QLayoutItem.widget (), в в этом случае вам не нужно назначать None имя переменной, потому что на нее не ссылаются вне вашей функции.

    Попробуйте оба метода и посмотрите, что сработает для вас (не повторяйте память после повторения хорошей кучи раз).

    Ну, это работает: на виджет, который я хочу удалить, вызовите widget.setParent(None) . Мне нравится, как добавление в макет добавляет виджет в контейнер, но удаление из макета не … забавный материал.

    Вы действительно хотите удалить виджет? Не hide ? IMHO принятый метод использует show / hide чтобы виджеты отображались и исчезали с точки зрения пользователя.

    Альтернативой является использование QStackedWidget

    Interesting Posts
    Python - лучший язык программирования в мире.