Проект Python PyQt5 разделен на два отдельных файла, создавая циклическую зависимостьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проект Python PyQt5 разделен на два отдельных файла, создавая циклическую зависимость

Сообщение Anonymous »

Я работаю над более крупным проектом PyQt5, но чтобы объяснить свою проблему, я написал эту небольшую программу.
Я разделил пользовательский интерфейс и его функции на два отдельных файла, потому что мне легче работать, чем с одним большой файл mainWindow.py и упрощает повторное преобразование файла .ui, созданного в Qt Designer.
В программе есть кнопка и строка редактирования. Кнопка pushButton запускает функцию button_click в файле main.py, которая печатает содержимое виджета lineEdit.
(mainWindow.py)

Код: Выделить всё

from PyQt5 import QtCore, QtGui, QtWidgets
from main import button_click

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(788, 674)
MainWindow.setWindowTitle("MainWindow")

self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")

self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(100, 80, 113, 20))
self.lineEdit.setObjectName("lineEdit")

self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(120, 170, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton.setText("Ok")
self.pushButton.clicked.connect(button_click)

MainWindow.setCentralWidget(self.centralwidget)

QtCore.QMetaObject.connectSlotsByName(MainWindow)

(main.py)

Код: Выделить всё

from PyQt5 import QtWidgets
from mainWindow import Ui_MainWindow
import sys

def button_click():
print(ui.lineEdit.text())

app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()

sys.exit(app.exec_())

Очевидно, что это создает циклическую ошибку импорта, поэтому мой вопрос: хороший ли это способ написать программу PyQt? И если да, то как мне обойти эту ошибку.

Подробнее здесь: https://stackoverflow.com/questions/790 ... dependency
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проект .NET 8. разделен на три уровня. Уровень представления — это веб-проект. Остальные слои представляют собой библиот
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как исправить эту циклическую зависимость весной?
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как исправить эту циклическую зависимость весной?
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как обрабатывать циклическую зависимость между двумя таблицами в SQLAlchemy
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Переопределить циклическую зависимость Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»