Как импортировать класс, находящийся в другом модуле
Подскажите, как добавить класс 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'])
