PyQt5, Python, Qt Designer
Делаю простой интерфейс к моему коду, использую Qt Designer + PyQt5, столкнулся с такой ошибкой, что при попытке связать введённые данные в поле виджета LineEdit с переменными кода выдаётся такая ошибка:
Process finished with exit code -1073740791
Сам интерфейс довольно простой поля для ввода данных в виде виджетов LineEdit и кнопка при нажатии которой запускается программа на Python, выполняет расчёт и записывает результат. Но всё зависает как раз при нажатии данной кнопки, если убрать импорт LineEdit и просто жать кнопку, то она успешно открывает и запускает код в PyCharm.
Никак не могу понять проблема в самом коде или в чём-то ещё. Пример условного кода ниже. Буду очень благодарен за помощь. Заранее извиняюсь за формат, нет возможности скопировать и вставить.
from PyQt5 import uic, QtWidgets
Form, _ = uic.loadUiType("1.ui")
class Ui(QtWidgets.QDialog, Form):
def __init__(self):
super(Ui, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.ResultButtonPressed)
def ResultButtonPressed(self):
file = open("Results.txt", "w")
a = float(self.lineEdit_1.text())
b = int(self.lineEdit_2.text())
# В переменную c из поля lineEdit_3
# вводится несколько значений через пробел
# и из них формируется список
c = [int(i) for i in self.lineEdit_3.text().split()]
v = a + b
print(c, file=file)
print("Результаты: " + str(v), file=file)
file.close()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Ui()
w.show()
sys.exit(app.exec_())
Ответы (1 шт):
Вы не предоставили минимальный воспроизводимый пример
и не понятно как вы делали 1.ui.
Если делать все правильно, то ваше приложение — работает.
q1474262.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>289</width>
<height>280</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QFormLayout" name="formLayout">
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>10</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>a</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_1"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>b</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="minimumSize">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>c</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_3"/>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
main.py
from PyQt5 import uic, QtWidgets
Form, _ = uic.loadUiType("q1474262.ui")
print(f'{Form} --- {_}')
class Ui(QtWidgets.QDialog, Form):
def __init__(self):
super(Ui, self).__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.ResultButtonPressed)
def ResultButtonPressed(self):
file = open("Results.txt", "w")
a = float(self.lineEdit_1.text())
b = int(self.lineEdit_2.text())
# В переменную c из поля lineEdit_3
# вводится несколько значений через пробел
# и из них формируется список
c = [int(i) for i in self.lineEdit_3.text().split()]
v = a + b
print(c, file=file)
print("Результаты: " + str(v), file=file)
file.close()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Ui()
w.show()
sys.exit(app.exec_())


