हटा दिया गया है लिपटे अगर मैं इस कोड को चलाएँ: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