Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Pyqt5: как изменить содержимое виджета не меняя основного окна

Делаю десктоп приложение на python3+pyqt5, которое состоит из нескольких компонентов:
menu/
menu.py menu.ui main/
main.py main.ui app/
app.py app.ui default/
default.py default.ui
Мне необходимо реализовать переключение между отображениями разных компонентов в одном окне. Т.е. есть главное окно, разделенное по горизонтали на две части двумя виджетами и нужно отображать в верхнем виджете меню, взятое из menu/menu.py, а в нижнем виджете содержимое виджета из default/default.py при включении программы, и менять содержимое этого виджета при клике на кнопке в меню на app/app.py.
Я не конвертирую .ui файлы в .py и работаю с ними так:
uic.loadUi("main/main.ui", self) self.hello_button.clicked.connect(self.print_text)
Скажите пожалуйста с помощью каких классов, методов pyqt5 можно вставлять и менять содержимое виджетов в главном окне из виджетов других компонентов программы.
Я пробовал различные способы с hide() и show(), но это не решает данную задачу. Документацию я изучал, но огромное количество классов запутывают при поиске верного решения, плюс документация эта для c++ и мне как новичку сложновато в ней разобраться так же быстро как, например, с документацией по python.
Заранее благодарю всех за ответы.


Ответ

Можете посмотреть класс QStackedWidget. Данный класс позволяет добавить несколько виджетов в стэк, а затем отображать именно тот, который вам нужен, меняя index

Комментариев нет:

Отправить комментарий