PyQT6, как в дочерний виджет (вкладка в QTabWidget) вывести класс реализованного приложения?
Есть два класса-приложения myLekarstva и mysport. Оба работают если запускать их как самостоятельные приложения (команды "python myLekarstva" и "python mysport").
В обоих случаях приложения состоят из 2-х файлов: main.py и main_window_ui.py.
Решил объединить их в одном приложении (в mysport т.к. оно более объемное). Добавил в QTabWidget вкладку tab_6 и в методе инициализации прописал создание объекта класса WindowLek (класс приложения myLekarstva).
При запуске "python mysport" активна tab_6 и видно как элементы окна WindowLek на короткий миг появляются и пропадают.
Файл main.py (не весь, думаю остальное не принципиально):
...
from main_window_ui import Ui_MainWindow
from mainLek import WindowLek
class Window(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.connectSignalsSlots()
self.winLek = WindowLek(self.tab_6)
self.winLek.activateWindow()
...
...
from main_windowLek_ui import Ui_MainWindowLek
from decimal import Decimal
class WindowLek(QMainWindow, Ui_MainWindowLek):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
print("WindowLek")
self.connectSignalsSlots()
self.loadDirectorys()
...
Сам вопрос, что я делаю не так?
PS: в файлах main_window_ui.py и main_windowLek_ui.py результат работы скрипта "pyuic6 -o main_window_ui.py ui/mainwindow.ui" и "pyuic6 -o main_windowLek_ui.py ui/mainwindowlek.ui" т.е. там формируется интерфейс приложений.
Ответы (1 шт):
Решил. Решение в двух последних строках:
class Window(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.connectSignalsSlots()
self.winLek = WindowLek()
self.winLek.setParent(self.tab_6)