У меня есть 3 файла, main.py, design.py и nick.py. Мне нужно вызвать функцию proba() из в файла nick.py в файл design.py.
main.py:from PyQt5 import QtWidgets
import sys # sys нужен для передачи argv в QApplication
import design # Это наш конвертированный файл дизайна
class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
def __init__(self):
# Это здесь нужно для доступа к переменным, методам
# и т.д. в файле design.py
super().__init__()
self.setupUi(self) # Это нужно для инициализации нашего дизайна
def main():
app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication
window = ExampleApp() # Создаём объект класса ExampleApp
window.show() # Показываем окно
app.exec_() # и запускаем приложение
if __name__ == '__main__': # Если мы запускаем файл напрямую, а не импортируем
main() # то запускаем функцию main()
design.py:# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'design.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from socket import *
import threading
import time
import sys
import nick
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(812, 403)
font = QtGui.QFont()
font.setPointSize(14)
MainWindow.setFont(font)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.sendBtn = QtWidgets.QPushButton(self.centralwidget)
self.sendBtn.setGeometry(QtCore.QRect(-10, 360, 651, 51))
self.sendBtn.clicked.connect(self.sendSMS)
self.sendBtn.setAutoDefault(True)
self.sendBtn.setFont(font)
self.sendBtn.setObjectName("sendBtn")
font = QtGui.QFont()
font.setPointSize(20)
self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
self.textBrowser.setGeometry(QtCore.QRect(0, 0, 641, 261))
self.textBrowser.setObjectName("textBrowser")
self.horizont1 = QtWidgets.QFrame(self.centralwidget)
self.horizont1.setGeometry(QtCore.QRect(0, 251, 640, 21))
self.horizont1.setLineWidth(3)
self.horizont1.setFrameShape(QtWidgets.QFrame.HLine)
self.horizont1.setFrameShadow(QtWidgets.QFrame.Sunken)
self.horizont1.setObjectName("horizont1")
self.area = QScrollArea(self)
self.area.setWidgetResizable(True)
self.area.setWidget(self.textBrowser)
self.area.setGeometry(0, 0, 641, 261)
self.exitBtn = QtWidgets.QPushButton(self.centralwidget)
self.exitBtn.setGeometry(QtCore.QRect(640, 360, 181, 51))
self.exitBtn.clicked.connect(self.close)
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.returnPressed.connect(self.sendBtn.click)
self.lineEdit.setGeometry(QtCore.QRect(0, 260, 641, 101))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit.setFocus()
self.lineEdit.clear()
font = QtGui.QFont()
font.setPointSize(16)
self.exitBtn.setFont(font)
self.exitBtn.setObjectName("exitBtn")
self.vert1 = QtWidgets.QFrame(self.centralwidget)
self.vert1.setGeometry(QtCore.QRect(638, 0, 5, 412))
self.vert1.setFrameShadow(QtWidgets.QFrame.Raised)
self.vert1.setLineWidth(0)
self.vert1.setMidLineWidth(3)
self.vert1.setFrameShape(QtWidgets.QFrame.VLine)
self.vert1.setObjectName("vert1")
self.userList = QtWidgets.QLabel(self.centralwidget)
self.userList.setGeometry(QtCore.QRect(690, 0, 101, 31))
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(False)
font.setWeight(50)
self.userList.setFont(font)
self.userList.setObjectName("userList")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(640, 40, 151, 321))
self.listWidget.setObjectName("listWidget")
self.listWidget.setStyleSheet("""
QScrollBar:vertical {
border: none;
background:white;
width:3px;
margin: 0px 0px 0px 0px;
}
QScrollBar::handle:vertical {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
min-height: 0px;
}
QScrollBar::add-line:vertical {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
height: 0px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
height: 0 px;
subcontrol-position: top;
subcontrol-origin: margin;
}
""")
self.horizont1_2 = QtWidgets.QFrame(self.centralwidget)
self.horizont1_2.setGeometry(QtCore.QRect(0, 351, 640, 21))
self.horizont1_2.setLineWidth(2)
self.horizont1_2.setFrameShape(QtWidgets.QFrame.HLine)
self.horizont1_2.setFrameShadow(QtWidgets.QFrame.Sunken)
self.horizont1_2.setObjectName("horizont1_2")
f = open('login.txt', 'r')
loginAdd = f.read()
loginAdd = loginAdd.split("♂")
self.listWidget.addItem("All")
self.listWidget.addItems(loginAdd)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def sendSMS(self):
mytext = self.lineEdit.text()
mytextlen = len(mytext)
if mytextlen >= 1:
self.lineEdit.clear()
self.textBrowser.insertPlainText(mytext + "\n")
def retranslateUi(self, MainWindow):
f = open('login.txt', 'r')
login = f.read()
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Chat: " + login))
self.sendBtn.setText(_translate("MainWindow", "Отправить сообщение"))
self.exitBtn.setText(_translate("MainWindow", "Выйти"))
self.userList.setText(_translate("MainWindow", "User list:"))
nick.py:import sys
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import (QMainWindow, QPushButton, QApplication, QApplication, QWidget,
QAction, QLineEdit, QMessageBox)
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.btn1 = QPushButton("Ок", self)
self.btn1.setGeometry(0, 60, 210, 50)
self.btn1.clicked.connect(self.buttonClicked)
self.btn1.setStyleSheet('QPushButton {background-color: #1a4780; font-size: 30px; }')
self.textbox = QLineEdit(self)
self.textbox.move(0, 0)
self.textbox.resize(210, 60)
self.textbox.setStyleSheet('QLineEdit {background-color: #faebd7; font-size: 40px; }')
self.setFixedSize(210, 110)
self.setWindowTitle('Авторизация')
self.show()
def buttonClicked(self):
self.auth = self.textbox.text()
print(self.auth)
self.close()
def proba(self):
self.auth = self.textbox.text()
print(self.auth)
app = QApplication(sys.argv)
ex = Example()
app.exec_()