PyQt4와 matplotlib를 사용하여 GUI를 만들고 있습니다. 내가 사용하려고하는 탭이있는 GUI 윈도우를 만들 때 this 매우 유용한 질문/답변을 찾았습니다. 모든 것이 잘 작동하는 것처럼 보입니다 (몇 가지 사소한 조정이 필요함). 그러나 메인 윈도우를 닫을 때마다 세그먼트 결함과 함께 "파이썬 종료 예기치 않게"오류가 발생합니다. 이것은 프로그램 운영에 영향을주지는 않지만 다소 성가신 일이며 문제를 찾아 내고 싶습니다. 이제exit matplotlib의 PyQt 세그멘테이션 오류
, 나는 다음과 같은 MWE까지 도착에 무슨 일이 있었는지 알아 내려고하는 동안 (또는 최소 깨진 예를 들어 만약 당신은) 문제는 창에 그림 캔버스를 추가 할 것으로 보인다
import sys
import matplotlib
matplotlib.use('Qt4agg')
import matplotlib.pyplot as plt
import numpy as np
from PyQt4 import QtCore
from PyQt4 import QtGui as qt
if __name__ == "__main__":
fig = plt.figure()
x, y = np.random.randn(2, 40)
ax = fig.add_subplot(111)
ax.plot(x, y, 'o')
ax.hold(False)
app = qt.QApplication(sys.argv)
# ui = MplMultiTab(figures=[fig], labels=["yay"])
ui = qt.QMainWindow()
ui.main_frame = qt.QWidget()
vbox = qt.QVBoxLayout()
vbox.addWidget(fig.canvas)
ui.main_frame.setLayout(vbox)
ui.setCentralWidget(ui.main_frame)
ui.show()
sys.exit(app.exec_())
마치 내가 이것을하지 않고 빈 gui (제거 vbox.addWidget(fig.canvas)
)를 만드는 것처럼 모든 것이 잘되고 segfault가 없습니다.
누구나 틀린 것을 보거나 matplotlib 또는 pyqt의 버그입니까? 또한 흥미롭게도, 내가 guier를 this answer과 비슷하게 설정했다면 세분화 오류가 없지만 실제로 차이점이 무엇인지 알 수는 없습니다.
모두를위한 정보 나는 Python 3.5.2에서 Python 버전 4.11.4와 matplotlib 버전 1.5.3을 OSX 10.11.6에서 사용하고 있습니다. PyQt documentation에 명시된 바와 같이
감사합니다. Jean-Sebastien. 내 코드를 재구성하는 동안 실제로 실수로 우연히 번호 1을 발견 했으므로 이제 내 문제가 왜 사라 졌는지 알 수 있습니다. 이것은 위대하고 잘 쓰여진 대답 btw입니다. – Andrew