Я разделил пользовательский интерфейс и его функции на два отдельных файла, потому что мне легче работать, чем с одним большой файл 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)
Код: Выделить всё
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_())
Подробнее здесь: https://stackoverflow.com/questions/790 ... dependency