मैं कुछ आपरेशन (setParent
) पायथन में एक वस्तु पर (एक वर्ग जो एक अलग वर्ग से विरासत का एक उदाहरण करने की कोशिश की QtGui.QLabel
), लेकिन रनटाइम के दौरान उपर्युक्त त्रुटि उठाई गई थी। ऑब्जेक्ट में वास्तविक सामग्री (डीबग पर सत्यापित) के साथ कुछ फ़ील्ड हैं, लेकिन किसी कारण से मैं इसे "उपयोग" नहीं कर सका। त्रुटि का मतलब क्या है और मैं इसे कैसे ठीक कर सकता हूं? कुछ अतिरिक्त जानकारी के लिए, मैं कहूंगा कि इस ऑपरेशन को करने की कोशिश करने से पहले ऑब्जेक्ट को स्थैतिक विधि से वापस कर दिया गया था।पायथन: RuntimeError: -, विशिष्ट होना सुपर वर्ग __init __ (% S के) कहा कभी नहीं किया गया था
उपवर्ग की अपनी एक __init__()
कार्य है:
def __init__(self, image, father):
super(AtomicFactory.Image, self).__init__(father)
self.raw_attributes = image.attributes
self.attributes = {}
father.addChild(self)
self.update()
अब मैं एक ऐसी ही कोड, एक साधारण एक है, कि लाइन widget.setParent(mw)
पर एक ही त्रुटि थी जब खिड़की ले जाया गया था लिखा था।
#!/usr/bin/env python
import sys
import copy
from PyQt4 import QtCore, QtGui
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
main_widget=QtGui.QWidget()
widget = QtGui.QPushButton('Test')
widget.resize(640, 480)
widget.setParent(main_widget)
widget.move(0, 0)
widget2=QtGui.QPushButton('Test2')
widget2.i=0
widget2.resize(600, 200)
widget2.setParent(main_widget)
widget2.move(640, 0)
def onResize(event):
print event
mw=copy.deepcopy(main_widget)
widget.setParent(mw)
widget2.setParent(mw)
widget.move(0, 0)
widget2.move(640, 480)
main_widget_width=main_widget.width()
widget_width=widget.width()
width2=main_widget_width-widget_width
height2=widget2.height()
widget2.resize(width2, height2)
widget2.move(640, 0)
main_widget.resizeEvent=onResize
def onClick():
size=(widget2.width(), widget2.height())
if(widget2.i%2==0):
widget2.resize(int(size[0]/2), int(size[1]/2))
else:
widget2.resize(size[0]*2, size[1]*2)
widget2.i+=1
QtCore.QObject.connect(widget, QtCore.SIGNAL('clicked()'), onClick)
main_widget.show()
sys.exit(app.exec_())
समस्या क्या थी?
यदि आपकी व्युत्पन्न कक्षा 'MyDerived' का अपना' __init__ 'है तो' सुपर (MyDerived, self) .__ init __() 'जोड़ने का प्रयास करें। – halex
यह करता है। वस्तु वास्तव में पहले बनाई गई थी और ठीक इस्तेमाल किया गया था। मैं शुरुआती चरण में समस्याओं के बिना setParent() का भी उपयोग कर सकता था। इसे तब एक सूची में डाला गया था और मैंने वर्णित स्थिर विधि को सूची में "पाया", और फिर इसे किसी अन्य स्थिर विधि में वापस कर दिया। जब उत्तरार्द्ध ने setParnet() का उपयोग करने की कोशिश की, तो त्रुटि वापस कर दी गई। वैसे भी, उप-वर्ग का __init __() कस्टम फ़ंक्शन है: – Tomer
def __init __ (स्वयं, छवि, पिता): सुपर (परमाणु फैक्ट्री.इमेज, स्वयं) .__ init __ (पिता) self.raw_attributes = image.attributes स्वयं।विशेषताएं = {} पिता.एड चाइल्ड (स्वयं) self.update() – Tomer