Добрый день!
Использую PyQt5 для создания примитивного интерфейса.
Внутри класса главного окна указываю переменные, которым присваиваю значения, введённые пользователем в line edit. Ниже идёт метод, который возвращает эти атрибуты. При попытке вызова этого метода, выскакивает ошибка "у класса нет таких атрибутов".
Использую PyQt5 для создания примитивного интерфейса.
Внутри класса главного окна указываю переменные, которым присваиваю значения, введённые пользователем в line edit. Ниже идёт метод, который возвращает эти атрибуты. При попытке вызова этого метода, выскакивает ошибка "у класса нет таких атрибутов".
Python:
from PyQt5 import QtWidgets, uic, QtCore, QtGui
import sys
# Main window
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(310, 350)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(310, 350))
MainWindow.setMaximumSize(QtCore.QSize(310, 350))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
MainWindow.setFont(font)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.port_btn = QtWidgets.QPushButton(self.centralwidget)
self.port_btn.setGeometry(QtCore.QRect(140, 310, 71, 21))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(10)
self.port_btn.setFont(font)
self.port_btn.setCheckable(False)
self.port_btn.setObjectName("port_btn")
self.port_btn.setStyleSheet('background: rgb(255,140,105);')
self.port_btn.clicked.connect(self.port_btn_clicked) # Pushing PORT
# Start line inputs
self.line_1 = QtWidgets.QLineEdit(self.centralwidget)
self.line_1.setGeometry(QtCore.QRect(170, 110, 91, 21))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(10)
self.line_1.setFont(font)
self.line_1.setObjectName("line_1")
self.line_2 = QtWidgets.QLineEdit(self.centralwidget)
self.line_2.setGeometry(QtCore.QRect(170, 160, 91, 21))
font = QtGui.QFont()
font.setFamily("Bahnschrift SemiBold Condensed")
font.setPointSize(10)
self.line_2.setFont(font)
self.line_2.setObjectName("line_2")
MainWindow.setCentralWidget(self.centralwidget)
# Trying this shit
self.li1 = self.line_1.text()
self.li2 = self.line_2.text()
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Windy?"))
self.port_btn.setText(_translate("MainWindow", "Port"))
def lines(self):
return self.li1, self.li2
def port_btn_clicked(self, MainWindow):
print("btn prsd")
self.close()
m = Ui_MainWindow()
lines = m.lines()
l1 = lines[0]
l2 = lines[1]
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Traceback (most recent call last):
File "C:\Users\Add.3Off\Desktop\Проги\Projects\Testing0_o.py", line 72, in <module>
lines = m.lines()
File "C:\Users\Add.3Off\Desktop\Проги\Projects\Testing0_o.py", line 65, in lines
return self.li1, self.li2
AttributeError: 'Ui_MainWindow' object has no attribute 'li1'
Process finished with exit code 1
File "C:\Users\Add.3Off\Desktop\Проги\Projects\Testing0_o.py", line 72, in <module>
lines = m.lines()
File "C:\Users\Add.3Off\Desktop\Проги\Projects\Testing0_o.py", line 65, in lines
return self.li1, self.li2
AttributeError: 'Ui_MainWindow' object has no attribute 'li1'
Process finished with exit code 1