>source

사용자가 MATPLOTLIB를 사용하여 이미지를 클릭 해야하는 응용 프로그램이 있습니다. 나는 디버거를 사용하고 싶다(53 행) 그러나 앱을 시작하고 버튼을 클릭하면 "qcoreapplication :: exec : 이벤트 루프가 이미 실행중인 메시지가 나타나고 디버거를 사용하는 것을 방지합니다. 나는 그것이 다음 줄에서 오는 것으로 의심된다고 생각하지만 나는 확실하지 않다.

import matplotlib
try:
    matplotlib.rcParams['backend.qt5']= 'PySide2'
except (KeyError, Exception):
    pass
matplotlib.use('Qt5Agg')

이전에 물어 본이 질문에서 얻은 대답 덕분에 그 선을 구현했습니다.

백엔드와 동일한 code 구조를 어떻게 유지하고 PDB 디버거를 사용할 수 있습니까?

import sys
import os
import subprocess
from subprocess import call
import matplotlib
import pdb
try:
    matplotlib.rcParams['backend.qt5']= 'PySide2'
except (KeyError, Exception):
    pass
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt
from PySide2 import QtGui
from PySide2 import QtCore
from PySide2.QtWidgets import QWidget, QApplication, QPushButton, QFileDialog
from PySide2.QtCore import QFile, QTextStream
os.environ['QT_MAC_WANTS_LAYER']= '1'
from IPython.core import ultratb
import pdb
sys.excepthook= ultratb.FormattedTB(mode='Verbose', color_scheme='Linux', call_pdb=True)
class GUI(QWidget):
    def __init__(self):
        super(GUI, self).__init__()
        self.initUI()
    def initUI(self):
        height_btn= 40
        width_btn= 350
        button_position_x= 0
        button_position_y= 20
        button_position_x= button_position_x= 0
        button_position_y= button_position_y + 400
        btn15= QPushButton('button', self)
        btn15.clicked.connect(self.Plotfunction)
        btn15.resize(width_btn, height_btn)
        btn15.move(button_position_y, button_position_x)
        self.show()
    def Plotfunction(self):
        pdb.set_trace()
        print("ok")
def main():
    app= QApplication(sys.argv)
    ex= GUI()
    sys.exit(app.exec_())
if __name__== '__main__':
    main()

MATPLOTLIB 가져 오기 전에 PYSIDE2 가져 오기를 이동하십시오

eyllanesc2021-07-23 21:33:08

한 번 더 @eyyllanesc! 그 질문은 질문의 스크립트에 대한 문제를 해결했습니다. 그러나 주요 응용 프로그램에서는 문제가 지속됩니다. 나는 더 나아가서 문제에 더 가깝게해야한다.

ecjb2021-07-23 21:33:08
  • 이전 Oracle Edition 및 Spring Boot.
  • 다음 javascript : ReferenceError : 큐는 내 음악 명령으로 정의되지 않습니다.