인프런 커뮤니티 질문&답변

신의철님의 프로필 이미지
신의철

작성한 질문수

파이썬 입문 및 웹 크롤링을 활용한 다양한 자동화 어플리케이션 제작하기

버튼을 클릭하면 프로그램이 꺼집니다 ㅜㅜ

작성

·

313

0

안녕하세요 강사님. 강의 정말 잘 봤습니다. 

개인적인 프로그램을 만들던 중 시작부터 막혔습니다. 

제가 원하는건 textEdit에 처진 글들은 프린트 하는 건데 

완료 버튼을 클릭하면 프로그램이 꺼져버립니다 ㅜㅜ 

어떠한 오류메세지도 안떠서 인터넷에서도 방법을 못 찾았습니다. 

코드는 아래와 같습니다.

두번째 pyqtSlot이 실행되면 바로 꺼져버립니다. 

첫번째 pyqtSlot에서는 프린트가 정상 작동했는데.. 혼란스럽습니다. 

그래서 Qdesigner 문제인가 싶어서 textEdit 을 painTextEdit로도 해봤었는데

둘다 같은 문제가 발생하고 lineEdit은 정상 작동하는데.. 여러 텍스트를 입력받아야 해서 lineEdit는

사용할 수 없습니다. 어떻게 해결할 수 있을까요? 

그리고 pyqt5를 쓰면서 한번도 에러 메세지가 안나오던데...나오게 하는 방법이 없나요?

프로그램이 꺼져도 뭐가 문제인지 모르니 해결하기가 어렵습니다 ㅜㅜ 

import sys, io
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5 import uic
from tag_test import Ui_MainWindow

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

class Main(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.initSignal()

    def initSignal(self):
        self.pushButton_7.clicked.connect(self.inputAdinfo)
        self.pushButton_9.clicked.connect(self.inputKeyword)

    @pyqtSlot()
    def inputAdinfo(self):
        self.ad_productN = self.lineEdit.text()
        self.ad_camN = self.lineEdit_2.text()

    @pyqtSlot()
    def inputKeyword(self):
        self.Keywords = self.textEdit.text()
        print(self.Keywords)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Main()
    window.show()
    app.exec_()

답변 2

0

신의철님의 프로필 이미지
신의철
질문자

class Main에 

sys._excepthook = sys.excepthook

    def exception_hook(exctype, value, traceback):

        print(exctype, value, traceback)

        sys._excepthook(exctype, value, traceback)

        sys.exit(1)

    sys.excepthook = exception_hook

를 추가해서 해결했습니다. ㅎㅎ 

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

안녕하세요. 위에 소스코드로만 보면 디버깅이 쉽지않습니다.

파이참을 사용하시면 디버깅을 통해서 문제 해결에 접근하실 수 있을겁니다.

파이참은 일정기간 무료로 사용하실 수 있습니다.

감사합니다.

신의철님의 프로필 이미지
신의철

작성한 질문수

질문하기