Как импортировать класс, находящийся в другом модуле

Подскажите, как добавить класс FirstInstance() из файла first_instance.py
в файл Parent_window.py класс CourtFederal()?
Добавить хочу именно в окно treeWidget.

Parent_window.py

import sys
from PyQt5 import QtWidgets, QtCore
from first_instance import FirstInstance  # импорт всего модуля
from appellate_instance import AppellateInstance # импорт
import LeftWidow


class CourtFederal(QtWidgets.QMainWindow):
    def __init__(self, parent: QtWidgets.QWidget = None) -> None:
        QtWidgets.QMainWindow.__init__(self, parent, QtCore.Qt.Window)

        self.setGeometry(300, 300, 700, 520) #размер основного окна

        menuBar = QtWidgets.QMenuBar(self)
        menuBar.addMenu("Файл")
        menuBar.addMenu("Параметры")
        menuBar.addMenu("Справка")
        self.setMenuBar(menuBar)

        tabBar = QtWidgets.QTabWidget(self)
        tabBar.addTab(QtWidgets.QWidget(self), "Окно 1")
        tabBar.addTab(QtWidgets.QWidget(self), "Окно 2")
        tabBar.addTab(QtWidgets.QWidget(self), "Окно 3")
        self.setCentralWidget(tabBar)

        treeWidget = QtWidgets.QTreeWidget(self)
        treeWidget.setHeaderHidden(True)
        dockWidget_treeWidget = QtWidgets.QDockWidget("Древо параметров", self)
        dockWidget_treeWidget.setWidget(treeWidget)
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dockWidget_treeWidget)

        # layout = QtWidgets.QVBoxLayout()
        # self.firstinstance = FirstInstance()
        # layout.addWidget(self.firstinstance)

        # if not parent:
          #  self.show()

if __name__ == "__main__":

    app = QtWidgets.QApplication(sys.argv)
    window = CourtFederal()
    window.setWindowTitle("Основное окно")
    window.show()
    sys.exit(app.exec_())

first_instance.py

import sys
from PyQt5 import QtWidgets


class FirstInstance(QtWidgets.QTreeWidget):

    def __init__(self, parent: QtWidgets.QWidget = None) -> None:
        QtWidgets.QTreeWidget.__init__(self, parent)
        self.setHeaderHidden(True)

        app = QtWidgets.QApplication(sys.argv)
        window = QtWidgets.QWidget()
        layout = QtWidgets.QVBoxLayout(window)
        window.setGeometry(300, 300, 700, 500)  # Размер окна

        # Создайте виджет QTreeWidget
        tree_widget_1 = QtWidgets.QTreeWidget()
        tree_widget_1.setHeaderHidden(True)

        # Заполните первое дерево объектами QTreeWidgetItem
        FirstInstance = QtWidgets.QTreeWidgetItem(tree_widget_1, ['Первая '])
        Ad_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['Адм'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['1'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['2'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['3'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['4'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['5'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['6'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['7'])
        Kas_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['Адму'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['1'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['2'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['3'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['4'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['5'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['6'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['7'])
        Ci_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['Гр'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['1'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['2'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['3'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['4'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['5'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['6'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['7'])
        Cri_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['У'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['1'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['2'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['3'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['4'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['5'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['6'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['7'])

        layout.addWidget(tree_widget_1)
        window.show()
        sys.exit(app.exec())


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    main = FirstInstance()
    sys.exit(app.exec())

Пожалуйста! Очень мучаюсь и не могу понять, что я не так делаю и почему!


Ответы (1 шт):

Автор решения: S. Nick

Я не уверен что правильно понял вас, но предложу попробовать так:

main.py

import sys
from PyQt5 import QtWidgets, QtCore
from first_instance import FirstInstance                              # импорт
# ??? from appellate_instance import AppellateInstance 
# ??? import LeftWidow


class CourtFederal(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

#        self.setGeometry(300, 300, 700, 520) 
        self.resize(700, 520)
        
        menuBar = QtWidgets.QMenuBar(self)
        menuBar.addMenu("Файл")
        menuBar.addMenu("Параметры")
        menuBar.addMenu("Справка")
        self.setMenuBar(menuBar)

        tabBar = QtWidgets.QTabWidget(self)
        tabBar.addTab(QtWidgets.QWidget(self), "Окно 1")
        tabBar.addTab(QtWidgets.QWidget(self), "Окно 2")
        tabBar.addTab(QtWidgets.QWidget(self), "Окно 3")
        self.setCentralWidget(tabBar)

        self.firstinstance = FirstInstance()                                     # !!!

        dockWidget_treeWidget = QtWidgets.QDockWidget("Древо параметров", self)
        dockWidget_treeWidget.setWidget(self.firstinstance)                      # !!!
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, dockWidget_treeWidget)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = CourtFederal()
    window.setWindowTitle("Основное окно")
    window.show()
    sys.exit(app.exec_())

first_instance.py

import sys
from PyQt5 import QtWidgets


class FirstInstance(QtWidgets.QTreeWidget):
    def __init__(self):
        super().__init__()
        self.setHeaderHidden(True)

        # Заполните первое дерево объектами QTreeWidgetItem
#        FirstInstance = QtWidgets.QTreeWidgetItem(tree_widget_1, ['Первая '])
# ----------------------------------------------> vvvv
        FirstInstance = QtWidgets.QTreeWidgetItem(self, ['Первая '])            # +++ self   
        
        Ad_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['Адм'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['1'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['2'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['3'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['4'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['5'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['6'])
        QtWidgets.QTreeWidgetItem(Ad_1, ['7'])
        Kas_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['Адму'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['1'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['2'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['3'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['4'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['5'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['6'])
        QtWidgets.QTreeWidgetItem(Kas_1, ['7'])
        Ci_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['Гр'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['1'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['2'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['3'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['4'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['5'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['6'])
        QtWidgets.QTreeWidgetItem(Ci_1, ['7'])
        Cri_1 = QtWidgets.QTreeWidgetItem(FirstInstance, ['У'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['1'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['2'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['3'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['4'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['5'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['6'])
        QtWidgets.QTreeWidgetItem(Cri_1, ['7'])

введите сюда описание изображения

→ Ссылка