Tahrip olduktan sonra bazı el ile temizlik yapmak zorunda kalacağım bir widget'ım var (bazı konuları durdur). Ancak bazı sebeplerden dolayı widget'in "yokedilmiş" sinyali ateş etmiyor. Sorunu gösteren bu küçük örneği yaptım.Widget'ın "yok edilmiş" sinyali tetiklenmiyor (PyQT)
import sys
from PyQt4 import QtGui
class MyWidget(QtGui.QWidget):
def __init__(self, parent):
super(MyWidget, self).__init__(parent)
def doSomeDestruction():
print('Hello World!')
self.destroyed.connect(doSomeDestruction)
class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.widget = MyWidget(self)
app = QtGui.QApplication(sys.argv)
window = MyWindow()
window.show()
ret = app.exec_()
sys.exit(ret)
"Merhaba Dünya!" Ana pencere kapandığında. Ancak, hiçbir şey yazdırmıyor.
Büyük olasılıkla Hello World'ü bana yazdıran kodu paylaşabilir misiniz? Kodu talimatlarınıza göre düzenlemeye çalıştım ama hala çalışmıyor. http://pastebin.com/ZCgteHu4 – Scintillo
Bu çok garip. Kodumdaki tek fark, 'doSomeDestruction' iki sınıf arasında tanımlanmış olmasıdır. Ama şimdi bunun sadece bazen çalıştığını öğrendim. Ayrıca bir ['gc.collect'] (http://docs.python.org/3.3/library/gc.html#gc.collect), ancak hiçbir etkisi yoktu. Umarım birileri çalışmasını sağlayacak bir yol bulabiliriz. – TobiMarg
Güncellenmiş yanıtımı görün. Şimdi çalışmalıyım. (doSomeDestruction öğesinin nerede tanımlandığı farketmez) – TobiMarg