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

Поток при котором выбирается файл, приводит к закрытию программы

21.07.2022, 16:28. Показов 597. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если нажать кнопку начать и выбрать файл, то программа просто закроется и не выведет ни одной ошибки. Почему так происходит? Что мне исправить?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys, random,threading,time 
from ui import Ui_Dialog
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Dialog()
ui.setupUi(Form)
def test():
    fil = QFileDialog.getOpenFileName()
    with open(fil[0], "rb") as file:
        content: bytes = file.read()
    binary: str = "".join(map("{:08b}".format, content))
    print("Процесс успешно закончен")
def pr():
    thr = threading.Thread(target=test)
    thr.start()
ui.pushButton.clicked.connect(pr)
Form.show()
sys.exit(app.exec_())
ui.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(150, 90, 89, 25))
        self.pushButton.setObjectName("pushButton")
        self.lineEdit = QtWidgets.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(30, 90, 113, 25))
        self.lineEdit.setObjectName("lineEdit")
        self.checkBox = QtWidgets.QCheckBox(Dialog)
        self.checkBox.setGeometry(QtCore.QRect(160, 150, 92, 23))
        self.checkBox.setObjectName("checkBox")
 
        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
 
    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "test"))
        self.pushButton.setText(_translate("Dialog", "начать"))
        self.checkBox.setText(_translate("Dialog", "CheckBox"))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.07.2022, 16:28
Ответы с готовыми решениями:

Загрузка формы приводит к закрытию приложения
Из FORM1 перехожу в FORM2 Form2 F2 = new Form2(); F2.ShowDialog(); В момент загрузки второй формы private void...

Вызываемое исключение возможно приводит к закрытию окна
Здравствуйте, уважаемые форумчане. Столкнулся с одной проблемой, которую думал, что смог решить, но она, вероятно, привела к другой...

Закрытие дочернего окна приводит к закрытию основного окна
Суть задания "После нажатия левой кнопки мышки в области окна в левом углу окна создать временное окно размером в чверть основного окна....

1
1 / 1 / 2
Регистрация: 20.03.2019
Сообщений: 264
22.07.2022, 08:46  [ТС]
Лично мне помогло, то что я убрал выбор файла из потока, он выбирается перед открытием потока.
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
import sys, random,threading,time # sys нужен для передачи argv в QApplication
from ui import Ui_Dialog
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
 
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Dialog()
ui.setupUi(Form)
def test(fil):
    with open(fil[0], "rb") as file:
        content: bytes = file.read()
    binary: str = "".join(map("{:08b}".format, content))
    print("Процесс успешно закончен")
def pr():
    fil = QFileDialog.getOpenFileName()
    thr = threading.Thread(target=test, args=(fil,))
    thr.start()
ui.pushButton.clicked.connect(pr)
Form.show()
 
sys.exit(app.exec_())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.07.2022, 08:46
Помогаю со студенческими работами здесь

Не производится запись в файл и стандартный поток вывода при успешном завершении программы
Здравствуйте. Программа завершается успешно. Проходил в дебагере, ничего такого не обнаружил. Просто не записывает ничего в файлы или...

Ошибка при запросе приводит к завершению программы
Я юзаю такую штуку import urllib.request as ur data = ur.urlopen("ТУТ_МОЙ_URL_ЗАПРОС").read().decode() print(data) Все...

Завершение программы при закрытии формы только по команде пользователя, а не по закрытию формы кодом
В общем , когда программа открывается срабатывает событие OnShow() и открывается другая форма Form4->ShowModal(). В этой форме...

СМА ELECTROLUX EWF12981W, При выборе любой программы выбирается только одна программа,ручная сти
Добрый день.Дико извеняюсь но серийку и прод.№ забыл переписать.Проблема заключается в том что при выборе любой программы постояно...

Удаление txt с диска С по закрытию программы
У меня есть 2 текстового файла на 1 диске(они создаются програмно) как сделать,чтобы при закрытие программы они удалялись?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru