GUI на QT и вызов с другого файла

asmadeus

Новичок
Пользователь
Июл 27, 2020
17
1
3
Всем привет и с наступающими!
Понимаю, что в свем проекте наворотил все и сразу, типа - пытаюсь получить сумму "а" и "2" и удивляюсь, почему ошибка))
Но , к сути... В самое начало.
Есть два файла - условно назовем их Primary.py и Secondary.py
Файл Secondary.py хочу написать как модуль, чтобы можно было его вызвать в Primary.py
Secondary.py:
Python:
#  -*- coding: utf-8  - * -

import sys
from PyQt5 import QtCore, QtWidgets, QtGui
import images  #файл дизайна


class Images(QtWidgets.QMainWindow, images.Ui_MainWindow):
   def __init__(self, parent=None):
      QtWidgets.QWidget.__init__(self, parent)
      self.setupUi(self)


def run_module_images(caption):
   imagin = QtWidgets.QApplication(sys.argv)
   window = Images()  # Создаем  экземпляр  класса
   window.setWindowTitle(caption)
   if caption == "Join Images":
      window.cnsPic4.setVisible(False)
   elif caption == "Choise Image":
      icon = QtGui.QIcon()
      icon.addPixmap(QtGui.QPixmap(":/Icon/Choise.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
      window.setWindowIcon(icon)
      window.resize(246, 570)
      window.cnsList1.resize(230, 400)
      window.cnsPic4.setVisible(True)
   window.show()  # Отображаем  окно
   sys.exit(imagin.exec_())  # Запускаем  цикл  обработки  событий


if __name__ == '__main__':
   run_module_images("Join Images")

Файл Primary.py:
Python:
import sys
from PyQt5 import QtWidgets, QtGui
from seconrary import Images


imagin = QtWidgets.QApplication(sys.argv)
window = Images()  # Создаем  экземпляр  класса
window.setWindowTitle("Choise Image")
if window.windowTitle() == "Join Images":
    window.cnsPic4.setVisible(False)
elif window.windowTitle() == "Choise Image":
    icon = QtGui.QIcon()
    icon.addPixmap(QtGui.QPixmap(":/Icon/Choise.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
    window.setWindowIcon(icon)
    window.resize(246, 570)
    window.cnsList1.resize(230, 400)
    window.cnsPic4.setVisible(True)
window.show()  # Отображаем  окно
sys.exit(imagin.exec_())  # Запускаем  цикл  обработки  событий

В таком виде оно работает, но...
1. Если я импортирую seconrary ( в котором уже импортирован PyQt5 ), то почему в Primary его надо импортировать повторно (как и sys)
2. Как избежать такой громоздкости (хотя это наверное моя криворукость).?
Если можно, прошу показать правильную модель на этом конкретном примере.
Типа - что должно быть в модуле, и в основном файле
 

Форум IT Специалистов