Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 06.10.2020
Сообщений: 2
PyQt5

Странный exit code

06.10.2020, 15:33. Показов 1844. Ответов 5

Студворк — интернет-сервис помощи студентам
Проблема такая: надо создать примитивный калькулятор, который принимает на вход 2 целых числа, и выводит их сумму, разность, произведение и частное. Всё это подключено к GUI с использованием PyQT5. Всё вроде бы работает, но при нажатии кнопки программа валится со страшным кодом -1073740791 (0xC0000409). Окно закрывается, так и не показав результат.
Вот, собственно, код. В PyQT опыта нет вообще, так что надеюсь на более-менее подробное объяснение.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import sys
 
from PyQt5.QtWidgets import QApplication, QPushButton, QLabel
from PyQt5.QtWidgets import QMainWindow, QLineEdit, QLCDNumber
 
 
class FirstForm(QMainWindow):
    def __init__(self):
        super().__init__()
        self.init_ui()
 
    def init_ui(self):
        # main
        self.setGeometry(300, 300, 500, 180)
        self.setWindowTitle('Миникалькулятор')
 
        # input lines
 
        self.first_int = QLineEdit(self)
        self.first_int.move(10, 30)
        self.second_int = QLineEdit(self)
        self.second_int.move(10, 90)
 
        # sidelanes for input
 
        self.west_side_lane = QLabel(self)
        self.west_side_lane.setText('Первое число (int): ')
        self.west_side_lane.resize(120, 40)
        self.west_side_lane.move(12, 2)
        self.east_side_lane = QLabel(self)
        self.east_side_lane.setText('Второе число (int, != 0): ')
        self.east_side_lane.resize(120, 40)
        self.east_side_lane.move(12, 62)
 
        # QLCD output
 
        self.pls = QLCDNumber(self)
        self.pls.move(370, 5)
        self.mns = QLCDNumber(self)
        self.mns.move(370, 45)
        self.mltplkt = QLCDNumber(self)
        self.mltplkt.move(370, 85)
        self.dvd = QLCDNumber(self)
        self.dvd.move(370, 125)
 
        # sidelanes
 
        self.pls_side_lane = QLabel(self)
        self.pls_side_lane.setText('Сумма:')
        self.pls_side_lane.move(320, 5)
        self.mns_side_lane = QLabel(self)
        self.mns_side_lane.setText('Разность:')
        self.mns_side_lane.move(305, 45)
        self.mltplkt_side_lane = QLabel(self)
        self.mltplkt_side_lane.setText('Произведение:')
        self.mltplkt_side_lane.move(278, 85)
        self.dvd_side_lane = QLabel(self)
        self.dvd_side_lane.setText('Частное:')
        self.dvd_side_lane.move(310, 125)
 
        # ('Второе число целое:')
        # ('Первое число целое:')
 
        self.button = QPushButton(self)
        self.button.move(10, 140)
        self.button.setText("->")
        self.button.clicked.connect(self.calculate)
 
    def calculate(self):
        self.pls.display(str(self.first_int + self.second_int))
        self.mns.display(str(self.first_int - self.second_int))
        self.mltplkt.display(str(self.first_int * self.second_int))
        self.dvd.display(str((self.first_int / self.second_int) if self.second_int != 0 else 'ERR'))
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = FirstForm()
    ex.show()
    sys.exit(app.exec())
Подозреваю что проблема кроется в функции calculate.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2020, 15:33
Ответы с готовыми решениями:

Process finished with exit code -1073740791 (0xC0000409)
Сижу значит, юзаю функцию для нахождения инфы с сайта в отдельном файле, перенёс в основной файл, не работает и выдаёт лютый код ошибки. ...

PyQt6 Process finished with exit code -1073740791 (0xC0000409)
пишу программу на основе PyQt6 выбираю файлик через QFileDialog.getOpenFileName передаю ссылку на него в дрегой модуль чтоб собрать...

Ошибка Process finished with exit code -1073740791 (0xC0000409)
# -*- coding: utf-8 -*- import sys from PyQt5 import QtGui from UI.mainWindow import MainWindow as mWindow import...

5
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.10.2020, 19:50
Лучший ответ Сообщение было отмечено Arzen983 как решение

Решение

Цитата Сообщение от Arzen983 Посмотреть сообщение
self.pls.display(str(self.first_int + self.second_int))
Ты пытаешься складывать, вычитать, умножать... сами QLineEdit, а не значения, которые внутри лежат
Python
1
self.pls.display(str(int(self.first_int.text()) + int(self.second_int.text())))
.. и так далее со всеми
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
06.10.2020, 21:12
Цитата Сообщение от Arzen983 Посмотреть сообщение
но при нажатии кнопки программа валится со страшным кодом -1073740791 (0xC0000409).
Если ты запустишь код просто из cmd консоли, то увидишь обычный питоновский traceback.
А то что видишь ты - это системная ошибка windows, которая никакого отношения к твоей ошибке в скрипте не имеет.

P.S. Что интересно, у всех яндекс-типа-лицееистов одна и та же ошибка с этим калькулятором. Видимо, потому что код просто воруете друг у друга.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
07.10.2020, 08:00
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# -*- mode: python 3.7 ; coding: utf-8 -*-
 
import sys
from PySide2 import QtWidgets
 
 
class Calculator(QtWidgets.QWidget):
 
    def __init__(self, parent: QtWidgets.QWidget = None):
        QtWidgets.QWidget.__init__(self, parent)
 
        self.value_editor1 = QtWidgets.QSpinBox(self)
        self.value_editor2 = QtWidgets.QSpinBox(self)
 
        self.amount_widget = QtWidgets.QLineEdit(self)
        self.amount_widget.setReadOnly(True)
        self.difference_widget = QtWidgets.QLineEdit(self)
        self.difference_widget.setReadOnly(True)
        self.composition_widget = QtWidgets.QLineEdit(self)
        self.composition_widget.setReadOnly(True)
        self.quotient_widget = QtWidgets.QLineEdit(self)
        self.quotient_widget.setReadOnly(True)
 
        self.value_editor1.valueChanged.connect(self.valueChangedEvent)
        self.value_editor2.valueChanged.connect(self.valueChangedEvent)
 
        layout = QtWidgets.QGridLayout(self)
        layout.addWidget(self.value_editor1, 0, 0, 1, 2)
        layout.addWidget(self.value_editor2, 0, 2, 1, 2)
        layout.addWidget(self.amount_widget, 1, 0)
        layout.addWidget(self.difference_widget, 1, 1)
        layout.addWidget(self.composition_widget, 1, 2)
        layout.addWidget(self.quotient_widget, 1, 3)
 
        if not parent:
            self.show()
 
    def valueChangedEvent(self):
        v1, v2 = self.value_editor1.value(), self.value_editor2.value()
        self.amount_widget.setText(str(v1 + v2))
        self.difference_widget.setText(str(v1 - v2))
        self.composition_widget.setText(str(v1 * v2))
        self.quotient_widget.setText(str(v1 / v2) if v2 != 0 else "NaN")
 
 
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    main = Calculator()
    app.exec_()
0
0 / 0 / 0
Регистрация: 06.10.2020
Сообщений: 2
07.10.2020, 12:25  [ТС]
Нет, мы все воруем готовые шаблоны из методички и прикручиваем свои виджеты сверху
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.10.2020, 12:40
Цитата Сообщение от Arzen983 Посмотреть сообщение
шаблоны из методички
Яндекс.Лицей знакомит учеников с профессией программиста и даёт системные знания в этой области. По окончании полного курса обучения школьники будут иметь навыки, достаточные для работы младшим разработчиком или стажёром. Ученики осваивают язык программирования Python.
Наглая ложь. Яндекс-лицей самый провальный образовательный проект. Никто из вас даже близко программировать не научится.

Цитата Сообщение от Arzen983 Посмотреть сообщение
Нет, мы все воруем
Поздравляю. Ну ты понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2020, 12:40
Помогаю со студенческими работами здесь

Ошибка Process finished with exit code -1073740791 (0xC0000409)
суть задачи: при нажатии кнопки, решение задачи в первом поле ввода отображается во втором поле ввода вот код: import sys from...

PyQt5 Ошибка Process finished with exit code -1073740791 (0xC0000409)
Задание: вводишь выражение по типу 1+1 в первую строку, а во второй строке ответ. Проблема: Окно открывается, я ввожу выражение, окно не...

Process finished with exit code 0
Возможно ли как то Process finished with exit code 0 изменить на что-то свое?

Process finished with exit code 0
student_name = 'Timur' student_list = for student in student_list: if student == student_name: print(f'Студент...

Process finished with exit code 245[
Python 3.7.3 Программа постоянно некорректно завершает работу. А именно примерно вот такие сообщения получаю: System check...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru