Делаю десктоп приложение на 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
Комментариев нет:
Отправить комментарий