을 삭제 한 싸서 :PyQt는 : RuntimeError에이 :이 코드를 실행하면 C/C++ 객체가
#!/usr/local/bin/ python3
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.button1 = QPushButton("1")
self.button2 = QPushButton("2")
self.setCentralWidget(self.button1)
self.button1.clicked.connect(lambda: self.setCentralWidget(self.button2))
self.button2.clicked.connect(lambda: self.setCentralWidget(self.button1))
self.show()
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())
을 ... 나는이 출력 얻을 :
이Traceback (most recent call last):
File "test.py", line 16, in <lambda>
self.button2.clicked.connect(lambda: self.setCentralWidget(self.button1))
RuntimeError: wrapped C/C++ object of type QPushButton has been deleted
이해가 안 왜 객체 삭제 중입니다. 창은 그 창에 대한 참조를 유지해야합니다. 나는 철저하게이 게시물 조사 하였다 : Understanding the “underlying C/C++ object has been deleted” error 이
이왜 버튼이 삭제되는 Can a PyQt4 QObject be queried to determine if the underlying C++ instance has been destroyed?을?을
나는 QWidget의 하위 클래스와 비슷한 문제를 겪고 있었고 문제는 내'__init__'의 시작 부분에서 QWidget의'__init__'를 호출하는 것을 잊었다는 것이 밝혀졌습니다. 교활한. – spookypeanut